use autogenerated LFO type definition

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1150475 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-07-24 19:23:20 +00:00
parent a661f497d0
commit dce04f66d4
3 changed files with 492 additions and 92 deletions

View File

@ -17,71 +17,38 @@
package org.apache.poi.hwpf.model;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.hwpf.model.types.LFOAbstractType;
import java.util.Arrays;
public final class ListFormatOverride
public final class ListFormatOverride extends LFOAbstractType
{
int _lsid;
int _reserved1;
int _reserved2;
byte _clfolvl;
byte[] _reserved3 = new byte[3];
ListFormatOverrideLevel[] _levelOverrides;
private ListFormatOverrideLevel[] _levelOverrides;
public ListFormatOverride(int lsid)
public ListFormatOverride( byte[] buf, int offset )
{
_lsid = lsid;
fillFields( buf, offset );
_levelOverrides = new ListFormatOverrideLevel[getClfolvl()];
}
public ListFormatOverride( int lsid )
{
setLsid( lsid );
_levelOverrides = new ListFormatOverrideLevel[0];
}
public ListFormatOverride(byte[] buf, int offset)
{
_lsid = LittleEndian.getInt(buf, offset);
offset += LittleEndian.INT_SIZE;
_reserved1 = LittleEndian.getInt(buf, offset);
offset += LittleEndian.INT_SIZE;
_reserved2 = LittleEndian.getInt(buf, offset);
offset += LittleEndian.INT_SIZE;
_clfolvl = buf[offset++];
System.arraycopy(buf, offset, _reserved3, 0, _reserved3.length);
_levelOverrides = new ListFormatOverrideLevel[_clfolvl];
}
public int numOverrides()
{
return _clfolvl;
}
public int getLsid()
{
return _lsid;
}
void setLsid(int lsid)
{
_lsid = lsid;
}
public ListFormatOverrideLevel[] getLevelOverrides()
{
return _levelOverrides;
}
public void setOverride(int index, ListFormatOverrideLevel lfolvl)
{
_levelOverrides[index] = lfolvl;
}
public ListFormatOverrideLevel getOverrideLevel(int level)
public ListFormatOverrideLevel getOverrideLevel( int level )
{
ListFormatOverrideLevel retLevel = null;
for(int x = 0; x < _levelOverrides.length; x++)
for ( int x = 0; x < _levelOverrides.length; x++ )
{
if (_levelOverrides[x].getLevelNum() == level)
if ( _levelOverrides[x].getLevelNum() == level )
{
retLevel = _levelOverrides[x];
}
@ -89,33 +56,20 @@ public final class ListFormatOverride
return retLevel;
}
public boolean equals(Object obj)
public int numOverrides()
{
if (obj == null)
{
return false;
return getClfolvl();
}
ListFormatOverride lfo = (ListFormatOverride)obj;
return lfo._clfolvl == _clfolvl && lfo._lsid == _lsid &&
lfo._reserved1 == _reserved1 && lfo._reserved2 == _reserved2 &&
Arrays.equals(lfo._reserved3, _reserved3) &&
Arrays.equals(lfo._levelOverrides, _levelOverrides);
public void setOverride( int index, ListFormatOverrideLevel lfolvl )
{
_levelOverrides[index] = lfolvl;
}
public byte[] toByteArray()
{
byte[] buf = new byte[16];
int offset = 0;
LittleEndian.putInt(buf, offset, _lsid);
offset += LittleEndian.INT_SIZE;
LittleEndian.putInt(buf, offset, _reserved1);
offset += LittleEndian.INT_SIZE;
LittleEndian.putInt(buf, offset, _reserved2);
offset += LittleEndian.INT_SIZE;
buf[offset++] = _clfolvl;
System.arraycopy(_reserved3, 0, buf, offset, 3);
return buf;
byte[] bs = new byte[getSize()];
serialize( bs, 0 );
return bs;
}
}

View File

@ -0,0 +1,395 @@
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
package org.apache.poi.hwpf.model.types;
import org.apache.poi.util.BitField;
import org.apache.poi.util.LittleEndian;
/**
* List Format Override (LFO).
* <p>
* Class and fields descriptions are quoted from Microsoft Office Word 97-2007
* Binary File Format
*
* NOTE: This source is automatically generated please do not modify this file.
* Either subclass or remove the record in src/types/definitions.
*
* @author Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary
* File Format Specification [*.doc]
*/
public abstract class LFOAbstractType
{
protected int field_1_lsid;
protected int field_2_reserved1;
protected int field_3_reserved2;
protected byte field_4_clfolvl;
protected byte field_5_ibstFltAutoNum;
protected byte field_6_grfhic;
/**/private static BitField fHtmlChecked = new BitField( 0x01 );
/**/private static BitField fHtmlUnsupported = new BitField( 0x02 );
/**/private static BitField fHtmlListTextNotSharpDot = new BitField( 0x04 );
/**/private static BitField fHtmlNotPeriod = new BitField( 0x08 );
/**/private static BitField fHtmlFirstLineMismatch = new BitField( 0x10 );
/**/private static BitField fHtmlTabLeftIndentMismatch = new BitField(
0x20 );
/**/private static BitField fHtmlHangingIndentBeneathNumber = new BitField(
0x40 );
/**/private static BitField fHtmlBuiltInBullet = new BitField( 0x80 );
protected byte field_7_reserved3;
protected LFOAbstractType()
{
}
protected void fillFields( byte[] data, int offset )
{
field_1_lsid = LittleEndian.getInt( data, 0x0 + offset );
field_2_reserved1 = LittleEndian.getInt( data, 0x4 + offset );
field_3_reserved2 = LittleEndian.getInt( data, 0x8 + offset );
field_4_clfolvl = data[0xc + offset];
field_5_ibstFltAutoNum = data[0xd + offset];
field_6_grfhic = data[0xe + offset];
field_7_reserved3 = data[0xf + offset];
}
public void serialize( byte[] data, int offset )
{
LittleEndian.putInt( data, 0x0 + offset, field_1_lsid );
LittleEndian.putInt( data, 0x4 + offset, field_2_reserved1 );
LittleEndian.putInt( data, 0x8 + offset, field_3_reserved2 );
data[0xc + offset] = field_4_clfolvl;
data[0xd + offset] = field_5_ibstFltAutoNum;
data[0xe + offset] = field_6_grfhic;
data[0xf + offset] = field_7_reserved3;
}
/**
* Size of record
*/
public static int getSize()
{
return 0 + 4 + 4 + 4 + 1 + 1 + 1 + 1;
}
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append( "[LFO]\n" );
builder.append( " .lsid = " );
builder.append( " (" ).append( getLsid() ).append( " )\n" );
builder.append( " .reserved1 = " );
builder.append( " (" ).append( getReserved1() ).append( " )\n" );
builder.append( " .reserved2 = " );
builder.append( " (" ).append( getReserved2() ).append( " )\n" );
builder.append( " .clfolvl = " );
builder.append( " (" ).append( getClfolvl() ).append( " )\n" );
builder.append( " .ibstFltAutoNum = " );
builder.append( " (" ).append( getIbstFltAutoNum() ).append( " )\n" );
builder.append( " .grfhic = " );
builder.append( " (" ).append( getGrfhic() ).append( " )\n" );
builder.append( " .fHtmlChecked = " )
.append( isFHtmlChecked() ).append( '\n' );
builder.append( " .fHtmlUnsupported = " )
.append( isFHtmlUnsupported() ).append( '\n' );
builder.append( " .fHtmlListTextNotSharpDot = " )
.append( isFHtmlListTextNotSharpDot() ).append( '\n' );
builder.append( " .fHtmlNotPeriod = " )
.append( isFHtmlNotPeriod() ).append( '\n' );
builder.append( " .fHtmlFirstLineMismatch = " )
.append( isFHtmlFirstLineMismatch() ).append( '\n' );
builder.append( " .fHtmlTabLeftIndentMismatch = " )
.append( isFHtmlTabLeftIndentMismatch() ).append( '\n' );
builder.append( " .fHtmlHangingIndentBeneathNumber = " )
.append( isFHtmlHangingIndentBeneathNumber() ).append( '\n' );
builder.append( " .fHtmlBuiltInBullet = " )
.append( isFHtmlBuiltInBullet() ).append( '\n' );
builder.append( " .reserved3 = " );
builder.append( " (" ).append( getReserved3() ).append( " )\n" );
builder.append( "[/LFO]\n" );
return builder.toString();
}
/**
* List ID of corresponding LSTF (see LSTF).
*/
public int getLsid()
{
return field_1_lsid;
}
/**
* List ID of corresponding LSTF (see LSTF).
*/
public void setLsid( int field_1_lsid )
{
this.field_1_lsid = field_1_lsid;
}
/**
* Reserved.
*/
public int getReserved1()
{
return field_2_reserved1;
}
/**
* Reserved.
*/
public void setReserved1( int field_2_reserved1 )
{
this.field_2_reserved1 = field_2_reserved1;
}
/**
* Reserved.
*/
public int getReserved2()
{
return field_3_reserved2;
}
/**
* Reserved.
*/
public void setReserved2( int field_3_reserved2 )
{
this.field_3_reserved2 = field_3_reserved2;
}
/**
* Count of levels whose format is overridden (see LFOLVL).
*/
public byte getClfolvl()
{
return field_4_clfolvl;
}
/**
* Count of levels whose format is overridden (see LFOLVL).
*/
public void setClfolvl( byte field_4_clfolvl )
{
this.field_4_clfolvl = field_4_clfolvl;
}
/**
* Used for AUTONUM field emulation.
*/
public byte getIbstFltAutoNum()
{
return field_5_ibstFltAutoNum;
}
/**
* Used for AUTONUM field emulation.
*/
public void setIbstFltAutoNum( byte field_5_ibstFltAutoNum )
{
this.field_5_ibstFltAutoNum = field_5_ibstFltAutoNum;
}
/**
* HTML compatibility flags.
*/
public byte getGrfhic()
{
return field_6_grfhic;
}
/**
* HTML compatibility flags.
*/
public void setGrfhic( byte field_6_grfhic )
{
this.field_6_grfhic = field_6_grfhic;
}
/**
* Reserved.
*/
public byte getReserved3()
{
return field_7_reserved3;
}
/**
* Reserved.
*/
public void setReserved3( byte field_7_reserved3 )
{
this.field_7_reserved3 = field_7_reserved3;
}
/**
* Sets the fHtmlChecked field value. Checked
*/
public void setFHtmlChecked( boolean value )
{
field_6_grfhic = (byte) fHtmlChecked.setBoolean( field_6_grfhic, value );
}
/**
* Checked
*
* @return the fHtmlChecked field value.
*/
public boolean isFHtmlChecked()
{
return fHtmlChecked.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlUnsupported field value. The numbering sequence or format
* is unsupported (includes tab & size)
*/
public void setFHtmlUnsupported( boolean value )
{
field_6_grfhic = (byte) fHtmlUnsupported.setBoolean( field_6_grfhic,
value );
}
/**
* The numbering sequence or format is unsupported (includes tab & size)
*
* @return the fHtmlUnsupported field value.
*/
public boolean isFHtmlUnsupported()
{
return fHtmlUnsupported.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlListTextNotSharpDot field value. The list text is not "#."
*/
public void setFHtmlListTextNotSharpDot( boolean value )
{
field_6_grfhic = (byte) fHtmlListTextNotSharpDot.setBoolean(
field_6_grfhic, value );
}
/**
* The list text is not "#."
*
* @return the fHtmlListTextNotSharpDot field value.
*/
public boolean isFHtmlListTextNotSharpDot()
{
return fHtmlListTextNotSharpDot.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlNotPeriod field value. Something other than a period is
* used
*/
public void setFHtmlNotPeriod( boolean value )
{
field_6_grfhic = (byte) fHtmlNotPeriod.setBoolean( field_6_grfhic,
value );
}
/**
* Something other than a period is used
*
* @return the fHtmlNotPeriod field value.
*/
public boolean isFHtmlNotPeriod()
{
return fHtmlNotPeriod.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlFirstLineMismatch field value. First line indent mismatch
*/
public void setFHtmlFirstLineMismatch( boolean value )
{
field_6_grfhic = (byte) fHtmlFirstLineMismatch.setBoolean(
field_6_grfhic, value );
}
/**
* First line indent mismatch
*
* @return the fHtmlFirstLineMismatch field value.
*/
public boolean isFHtmlFirstLineMismatch()
{
return fHtmlFirstLineMismatch.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlTabLeftIndentMismatch field value. The list tab and the
* dxaLeft don't match (need table?)
*/
public void setFHtmlTabLeftIndentMismatch( boolean value )
{
field_6_grfhic = (byte) fHtmlTabLeftIndentMismatch.setBoolean(
field_6_grfhic, value );
}
/**
* The list tab and the dxaLeft don't match (need table?)
*
* @return the fHtmlTabLeftIndentMismatch field value.
*/
public boolean isFHtmlTabLeftIndentMismatch()
{
return fHtmlTabLeftIndentMismatch.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlHangingIndentBeneathNumber field value. The hanging indent
* falls beneath the number (need plain text)
*/
public void setFHtmlHangingIndentBeneathNumber( boolean value )
{
field_6_grfhic = (byte) fHtmlHangingIndentBeneathNumber.setBoolean(
field_6_grfhic, value );
}
/**
* The hanging indent falls beneath the number (need plain text)
*
* @return the fHtmlHangingIndentBeneathNumber field value.
*/
public boolean isFHtmlHangingIndentBeneathNumber()
{
return fHtmlHangingIndentBeneathNumber.isSet( field_6_grfhic );
}
/**
* Sets the fHtmlBuiltInBullet field value. A built-in HTML bullet
*/
public void setFHtmlBuiltInBullet( boolean value )
{
field_6_grfhic = (byte) fHtmlBuiltInBullet.setBoolean( field_6_grfhic,
value );
}
/**
* A built-in HTML bullet
*
* @return the fHtmlBuiltInBullet field value.
*/
public boolean isFHtmlBuiltInBullet()
{
return fHtmlBuiltInBullet.isSet( field_6_grfhic );
}
} // END OF CLASS

View File

@ -0,0 +1,51 @@
<?xml version="1.0"?>
<!--
====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
====================================================================
-->
<record fromfile="true" name="LFO" package="org.apache.poi.hwpf.model.types">
<suffix>AbstractType</suffix>
<extends>HDFType</extends>
<description>List Format Override (LFO). &lt;p&gt;Class and fields descriptions are quoted from
Microsoft Office Word 97-2007 Binary File Format
</description>
<author>Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary File Format
Specification [*.doc]
</author>
<fields>
<field type="int" size="4" name="lsid" description="List ID of corresponding LSTF (see LSTF)"/>
<field type="int" size="4" name="reserved1" description="Reserved"/>
<field type="int" size="4" name="reserved2" description="Reserved"/>
<field type="byte" size="1" name="clfolvl"
description="Count of levels whose format is overridden (see LFOLVL)"/>
<field type="byte" size="1" name="ibstFltAutoNum" description="Used for AUTONUM field emulation"/>
<field type="byte" size="1" name="grfhic" description="HTML compatibility flags">
<bit number="0" mask="0x01" name="fHtmlChecked" description="Checked"/>
<bit number="1" mask="0x02" name="fHtmlUnsupported"
description="The numbering sequence or format is unsupported (includes tab &amp; size)"/>
<bit number="2" mask="0x04" name="fHtmlListTextNotSharpDot" description="The list text is not &quot;#.&quot;"/>
<bit number="3" mask="0x08" name="fHtmlNotPeriod" description="Something other than a period is used"/>
<bit number="4" mask="0x10" name="fHtmlFirstLineMismatch" description="First line indent mismatch"/>
<bit number="5" mask="0x20" name="fHtmlTabLeftIndentMismatch"
description="The list tab and the dxaLeft don't match (need table?)"/>
<bit number="6" mask="0x40" name="fHtmlHangingIndentBeneathNumber"
description="The hanging indent falls beneath the number (need plain text)"/>
<bit number="7" mask="0x80" name="fHtmlBuiltInBullet" description="A built-in HTML bullet"/>
</field>
<field type="byte" size="1" name="reserved3" description="Reserved"/>
</fields>
</record>