aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSergey Vladimirov <sergey@apache.org>2011-07-08 09:49:47 +0000
committerSergey Vladimirov <sergey@apache.org>2011-07-08 09:49:47 +0000
commit7e92ade6575e334bf28395454249d1f11d8cd229 (patch)
treeb82782315df5d88af5eee210367482274f56124c /src
parent1bc512a9c6b3908d7d5f55387e1ee8ef53250c02 (diff)
downloadpoi-7e92ade6575e334bf28395454249d1f11d8cd229.tar.gz
poi-7e92ade6575e334bf28395454249d1f11d8cd229.zip
refactor FieldDescriptor to be based on autogenerated code
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1144224 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/FieldDescriptor.java184
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/types/FLDAbstractType.java310
-rw-r--r--src/types/definitions/fld_type.out.xml300
-rw-r--r--src/types/definitions/fld_type.xml49
4 files changed, 723 insertions, 120 deletions
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/FieldDescriptor.java b/src/scratchpad/src/org/apache/poi/hwpf/model/FieldDescriptor.java
index 4c0238f5dd..daafedd4ce 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/model/FieldDescriptor.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/model/FieldDescriptor.java
@@ -17,146 +17,90 @@
package org.apache.poi.hwpf.model;
-import java.text.MessageFormat;
-
-import org.apache.poi.util.HexDump;
+import org.apache.poi.hwpf.model.types.FLDAbstractType;
/**
* Class for the FLD structure.
*
* @author Cedric Bosdonnat <cbosdonnat@novell.com>
- *
*/
-public final class FieldDescriptor
+public final class FieldDescriptor extends FLDAbstractType
{
- public static final int FIELD_BEGIN_MARK = 0x13;
- public static final int FIELD_SEPARATOR_MARK = 0x14;
- public static final int FIELD_END_MARK = 0x15;
-
- private static final short BOUNDARY_MASK = 0x1F;
- private static final short TYPE_MASK = 0xFF;
- private static final short ZOMBIE_EMBED_MASK = 0x02;
- private static final short RESULT_DIRTY_MASK = 0x04;
- private static final short RESULT_EDITED_MASK = 0x08;
- private static final short LOCKED_MASK = 0x10;
- private static final short PRIVATE_RESULT_MASK = 0x20;
- private static final short NESTED_MASK = 0x40;
- private static final short HAS_SEP_MASK = 0x80;
-
- byte _fieldBoundaryType;
- byte _info;
+ public static final int FIELD_BEGIN_MARK = 0x13;
+ public static final int FIELD_SEPARATOR_MARK = 0x14;
+ public static final int FIELD_END_MARK = 0x15;
- private int fieldType;
- private boolean zombieEmbed;
- private boolean resultDirty;
- private boolean resultEdited;
- private boolean locked;
- private boolean privateResult;
- private boolean nested;
- private boolean hasSep;
-
- public FieldDescriptor(byte[] data)
- {
- _fieldBoundaryType = (byte) (data[0] & BOUNDARY_MASK);
- _info = data[1];
-
- if (_fieldBoundaryType == FIELD_BEGIN_MARK)
- {
- fieldType = _info & TYPE_MASK;
- } else if (_fieldBoundaryType == FIELD_END_MARK)
+ public FieldDescriptor( byte[] data )
{
- zombieEmbed = ((_info & ZOMBIE_EMBED_MASK) == 1);
- resultDirty = ((_info & RESULT_DIRTY_MASK) == 1);
- resultEdited = ((_info & RESULT_EDITED_MASK) == 1);
- locked = ((_info & LOCKED_MASK) == 1);
- privateResult = ((_info & PRIVATE_RESULT_MASK) == 1);
- nested = ((_info & NESTED_MASK) == 1);
- hasSep = ((_info & HAS_SEP_MASK) == 1);
+ fillFields( data, 0 );
}
- }
- public int getBoundaryType()
- {
- return _fieldBoundaryType;
- }
-
- public int getFieldType()
- {
- if (_fieldBoundaryType != FIELD_BEGIN_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for begin marks.");
- return fieldType;
- }
-
- public boolean isZombieEmbed()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return zombieEmbed;
- }
-
- public boolean isResultDirty()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return resultDirty;
- }
+ public int getBoundaryType()
+ {
+ return getCh();
+ }
- public boolean isResultEdited()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return resultEdited;
- }
+ public int getFieldType()
+ {
+ if ( getCh() != FIELD_BEGIN_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for begin marks." );
+ return getFlt();
+ }
- public boolean isLocked()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return locked;
- }
+ public boolean isZombieEmbed()
+ {
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFZombieEmbed();
+ }
- public boolean isPrivateResult()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return privateResult;
- }
+ public boolean isResultDirty()
+ {
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFResultDirty();
+ }
- public boolean isNested()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return nested;
- }
+ public boolean isResultEdited()
+ {
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFResultEdited();
+ }
- public boolean isHasSep()
- {
- if (_fieldBoundaryType != FIELD_END_MARK)
- throw new UnsupportedOperationException(
- "This field is only defined for end marks.");
- return hasSep;
- }
+ public boolean isLocked()
+ {
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFLocked();
+ }
- public String toString()
- {
- String details = new String();
- if (_fieldBoundaryType == FIELD_BEGIN_MARK)
+ public boolean isPrivateResult()
{
- details = " type: " + fieldType;
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFPrivateResult();
}
- else if (_fieldBoundaryType == FIELD_END_MARK)
+
+ public boolean isNested()
{
- details = " flags: 0x" + HexDump.toHex(_info);
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFNested();
}
- return MessageFormat.format("FLD - 0x{0}{1}", HexDump
- .toHex((byte) _fieldBoundaryType), details);
- }
+ public boolean isHasSep()
+ {
+ if ( getCh() != FIELD_END_MARK )
+ throw new UnsupportedOperationException(
+ "This field is only defined for end marks." );
+ return isFHasSep();
+ }
}
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/types/FLDAbstractType.java b/src/scratchpad/src/org/apache/poi/hwpf/model/types/FLDAbstractType.java
new file mode 100644
index 0000000000..34087512d7
--- /dev/null
+++ b/src/scratchpad/src/org/apache/poi/hwpf/model/types/FLDAbstractType.java
@@ -0,0 +1,310 @@
+/* ====================================================================
+ 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.hdf.model.hdftypes.HDFType;
+import org.apache.poi.util.BitField;
+
+/**
+ * Field Descriptor (FLD).
+ * <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/records/definitions.
+ *
+ * @author Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary
+ * File Format Specification [*.doc]
+ */
+public abstract class FLDAbstractType implements HDFType
+{
+
+ protected char field_1_ch;
+ protected byte field_2_flt;
+ private static BitField fDiffer = new BitField( 0x01 );
+ private static BitField fZombieEmbed = new BitField( 0x02 );
+ private static BitField fResultDirty = new BitField( 0x04 );
+ private static BitField fResultEdited = new BitField( 0x08 );
+ private static BitField fLocked = new BitField( 0x10 );
+ private static BitField fPrivateResult = new BitField( 0x20 );
+ private static BitField fNested = new BitField( 0x40 );
+ private static BitField fHasSep = new BitField( 0x40 );
+
+ public FLDAbstractType()
+ {
+
+ }
+
+ protected void fillFields( byte[] data, int offset )
+ {
+ field_1_ch = (char) data[0x0 + offset];
+ field_2_flt = data[0x1 + offset];
+
+ }
+
+ public void serialize( byte[] data, int offset )
+ {
+ data[0x0 + offset] = (byte) field_1_ch;
+ ;
+ data[0x1 + offset] = field_2_flt;
+ ;
+
+ }
+
+ public String toString()
+ {
+ StringBuffer buffer = new StringBuffer();
+
+ buffer.append( "[FLD]\n" );
+
+ buffer.append( " .ch = " );
+ buffer.append( " (" ).append( getCh() ).append( " )\n" );
+
+ buffer.append( " .flt = " );
+ buffer.append( " (" ).append( getFlt() ).append( " )\n" );
+ buffer.append( " .fDiffer = " )
+ .append( isFDiffer() ).append( '\n' );
+ buffer.append( " .fZombieEmbed = " )
+ .append( isFZombieEmbed() ).append( '\n' );
+ buffer.append( " .fResultDirty = " )
+ .append( isFResultDirty() ).append( '\n' );
+ buffer.append( " .fResultEdited = " )
+ .append( isFResultEdited() ).append( '\n' );
+ buffer.append( " .fLocked = " )
+ .append( isFLocked() ).append( '\n' );
+ buffer.append( " .fPrivateResult = " )
+ .append( isFPrivateResult() ).append( '\n' );
+ buffer.append( " .fNested = " )
+ .append( isFNested() ).append( '\n' );
+ buffer.append( " .fHasSep = " )
+ .append( isFHasSep() ).append( '\n' );
+
+ buffer.append( "[/FLD]\n" );
+ return buffer.toString();
+ }
+
+ /**
+ * Size of record (exluding 4 byte header)
+ */
+ public int getSize()
+ {
+ return 4 + +1 + 1;
+ }
+
+ /**
+ * Type of field boundary the FLD describes: 19 -- field begin mark, 20 --
+ * field separation mark; 21 -- field end mark.
+ */
+ public char getCh()
+ {
+ return field_1_ch;
+ }
+
+ /**
+ * Type of field boundary the FLD describes: 19 -- field begin mark, 20 --
+ * field separation mark; 21 -- field end mark.
+ */
+ public void setCh( char field_1_ch )
+ {
+ this.field_1_ch = field_1_ch;
+ }
+
+ /**
+ * Field type when ch == 19 OR field flags when ch == 21 .
+ */
+ public byte getFlt()
+ {
+ return field_2_flt;
+ }
+
+ /**
+ * Field type when ch == 19 OR field flags when ch == 21 .
+ */
+ public void setFlt( byte field_2_flt )
+ {
+ this.field_2_flt = field_2_flt;
+ }
+
+ /**
+ * Sets the fDiffer field value. Ignored for saved file
+ */
+ public void setFDiffer( boolean value )
+ {
+ field_2_flt = (byte) fDiffer.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * Ignored for saved file
+ *
+ * @return the fDiffer field value.
+ */
+ public boolean isFDiffer()
+ {
+ return fDiffer.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fZombieEmbed field value. ==1 when result still believes this
+ * field is an EMBED or LINK field
+ */
+ public void setFZombieEmbed( boolean value )
+ {
+ field_2_flt = (byte) fZombieEmbed.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 when result still believes this field is an EMBED or LINK field
+ *
+ * @return the fZombieEmbed field value.
+ */
+ public boolean isFZombieEmbed()
+ {
+ return fZombieEmbed.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fResultDirty field value. ==1 when user has edited or formatted
+ * the result. == 0 otherwise
+ */
+ public void setFResultDirty( boolean value )
+ {
+ field_2_flt = (byte) fResultDirty.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 when user has edited or formatted the result. == 0 otherwise
+ *
+ * @return the fResultDirty field value.
+ */
+ public boolean isFResultDirty()
+ {
+ return fResultDirty.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fResultEdited field value. ==1 when user has inserted text into
+ * or deleted text from the result
+ */
+ public void setFResultEdited( boolean value )
+ {
+ field_2_flt = (byte) fResultEdited.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 when user has inserted text into or deleted text from the result
+ *
+ * @return the fResultEdited field value.
+ */
+ public boolean isFResultEdited()
+ {
+ return fResultEdited.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fLocked field value. ==1 when field is locked from recalculation
+ */
+ public void setFLocked( boolean value )
+ {
+ field_2_flt = (byte) fLocked.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 when field is locked from recalculation
+ *
+ * @return the fLocked field value.
+ */
+ public boolean isFLocked()
+ {
+ return fLocked.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fPrivateResult field value. ==1 whenever the result of the field
+ * is never to be shown
+ */
+ public void setFPrivateResult( boolean value )
+ {
+ field_2_flt = (byte) fPrivateResult.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 whenever the result of the field is never to be shown
+ *
+ * @return the fPrivateResult field value.
+ */
+ public boolean isFPrivateResult()
+ {
+ return fPrivateResult.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fNested field value. ==1 when field is nested within another
+ * field
+ */
+ public void setFNested( boolean value )
+ {
+ field_2_flt = (byte) fNested.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 when field is nested within another field
+ *
+ * @return the fNested field value.
+ */
+ public boolean isFNested()
+ {
+ return fNested.isSet( field_2_flt );
+
+ }
+
+ /**
+ * Sets the fHasSep field value. ==1 when field has a field separator
+ */
+ public void setFHasSep( boolean value )
+ {
+ field_2_flt = (byte) fHasSep.setBoolean( field_2_flt, value );
+
+ }
+
+ /**
+ * ==1 when field has a field separator
+ *
+ * @return the fHasSep field value.
+ */
+ public boolean isFHasSep()
+ {
+ return fHasSep.isSet( field_2_flt );
+
+ }
+
+} // END OF CLASS
+
diff --git a/src/types/definitions/fld_type.out.xml b/src/types/definitions/fld_type.out.xml
new file mode 100644
index 0000000000..a852f1601b
--- /dev/null
+++ b/src/types/definitions/fld_type.out.xml
@@ -0,0 +1,300 @@
+
+package org.apache.poi.hwpf.model.types;
+
+
+
+import org.apache.poi.util.BitField;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.HexDump;
+import org.apache.poi.hdf.model.hdftypes.HDFType;
+import org.apache.poi.hwpf.usermodel.*;
+
+/**
+ * Field Descriptor (FLD). <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/records/definitions.
+
+ * @author Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary File Format
+ Specification [*.doc]
+
+ */
+public abstract class FLDAbstractType
+ implements HDFType
+{
+
+ protected char field_1_ch;
+ protected byte field_2_flt;
+ private static BitField fDiffer = new BitField(0x01);
+ private static BitField fZombieEmbed = new BitField(0x02);
+ private static BitField fResultDirty = new BitField(0x04);
+ private static BitField fResultEdited = new BitField(0x08);
+ private static BitField fLocked = new BitField(0x10);
+ private static BitField fPrivateResult = new BitField(0x20);
+ private static BitField fNested = new BitField(0x40);
+ private static BitField fHasSep = new BitField(0x40);
+
+
+ public FLDAbstractType()
+ {
+
+ }
+
+ protected void fillFields(byte [] data, int offset)
+ {
+ field_1_ch = data[ 0x0 + offset ];
+ field_2_flt = data[ 0x1 + offset ];
+
+ }
+
+ public void serialize(byte[] data, int offset)
+ {
+ data[ 0x0 + offset] = field_1_ch;;
+ data[ 0x1 + offset] = field_2_flt;;
+
+ }
+
+
+ public String toString()
+ {
+ StringBuffer buffer = new StringBuffer();
+
+ buffer.append("[FLD]\n");
+
+ buffer.append(" .ch = ");
+ buffer.append(" (").append(getCh()).append(" )\n");
+
+ buffer.append(" .flt = ");
+ buffer.append(" (").append(getFlt()).append(" )\n");
+ buffer.append(" .fDiffer = ").append(isFDiffer()).append('\n');
+ buffer.append(" .fZombieEmbed = ").append(isFZombieEmbed()).append('\n');
+ buffer.append(" .fResultDirty = ").append(isFResultDirty()).append('\n');
+ buffer.append(" .fResultEdited = ").append(isFResultEdited()).append('\n');
+ buffer.append(" .fLocked = ").append(isFLocked()).append('\n');
+ buffer.append(" .fPrivateResult = ").append(isFPrivateResult()).append('\n');
+ buffer.append(" .fNested = ").append(isFNested()).append('\n');
+ buffer.append(" .fHasSep = ").append(isFHasSep()).append('\n');
+
+ buffer.append("[/FLD]\n");
+ return buffer.toString();
+ }
+
+ /**
+ * Size of record (exluding 4 byte header)
+ */
+ public int getSize()
+ {
+ return 4 + + 1 + 1;
+ }
+
+
+
+ /**
+ * Type of field boundary the FLD describes: 19 -- field begin mark, 20 -- field separation mark; 21 -- field end mark.
+ */
+ public char getCh()
+ {
+ return field_1_ch;
+ }
+
+ /**
+ * Type of field boundary the FLD describes: 19 -- field begin mark, 20 -- field separation mark; 21 -- field end mark.
+ */
+ public void setCh(char field_1_ch)
+ {
+ this.field_1_ch = field_1_ch;
+ }
+
+ /**
+ * Field type when ch == 19 OR field flags when ch == 21 .
+ */
+ public byte getFlt()
+ {
+ return field_2_flt;
+ }
+
+ /**
+ * Field type when ch == 19 OR field flags when ch == 21 .
+ */
+ public void setFlt(byte field_2_flt)
+ {
+ this.field_2_flt = field_2_flt;
+ }
+
+ /**
+ * Sets the fDiffer field value.
+ * Ignored for saved file
+ */
+ public void setFDiffer(boolean value)
+ {
+ field_2_flt = (byte)fDiffer.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * Ignored for saved file
+ * @return the fDiffer field value.
+ */
+ public boolean isFDiffer()
+ {
+ return fDiffer.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fZombieEmbed field value.
+ * ==1 when result still believes this field is an EMBED or LINK field
+ */
+ public void setFZombieEmbed(boolean value)
+ {
+ field_2_flt = (byte)fZombieEmbed.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 when result still believes this field is an EMBED or LINK field
+ * @return the fZombieEmbed field value.
+ */
+ public boolean isFZombieEmbed()
+ {
+ return fZombieEmbed.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fResultDirty field value.
+ * ==1 when user has edited or formatted the result. == 0 otherwise
+ */
+ public void setFResultDirty(boolean value)
+ {
+ field_2_flt = (byte)fResultDirty.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 when user has edited or formatted the result. == 0 otherwise
+ * @return the fResultDirty field value.
+ */
+ public boolean isFResultDirty()
+ {
+ return fResultDirty.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fResultEdited field value.
+ * ==1 when user has inserted text into or deleted text from the result
+ */
+ public void setFResultEdited(boolean value)
+ {
+ field_2_flt = (byte)fResultEdited.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 when user has inserted text into or deleted text from the result
+ * @return the fResultEdited field value.
+ */
+ public boolean isFResultEdited()
+ {
+ return fResultEdited.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fLocked field value.
+ * ==1 when field is locked from recalculation
+ */
+ public void setFLocked(boolean value)
+ {
+ field_2_flt = (byte)fLocked.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 when field is locked from recalculation
+ * @return the fLocked field value.
+ */
+ public boolean isFLocked()
+ {
+ return fLocked.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fPrivateResult field value.
+ * ==1 whenever the result of the field is never to be shown
+ */
+ public void setFPrivateResult(boolean value)
+ {
+ field_2_flt = (byte)fPrivateResult.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 whenever the result of the field is never to be shown
+ * @return the fPrivateResult field value.
+ */
+ public boolean isFPrivateResult()
+ {
+ return fPrivateResult.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fNested field value.
+ * ==1 when field is nested within another field
+ */
+ public void setFNested(boolean value)
+ {
+ field_2_flt = (byte)fNested.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 when field is nested within another field
+ * @return the fNested field value.
+ */
+ public boolean isFNested()
+ {
+ return fNested.isSet(field_2_flt);
+
+ }
+
+ /**
+ * Sets the fHasSep field value.
+ * ==1 when field has a field separator
+ */
+ public void setFHasSep(boolean value)
+ {
+ field_2_flt = (byte)fHasSep.setBoolean(field_2_flt, value);
+
+
+ }
+
+ /**
+ * ==1 when field has a field separator
+ * @return the fHasSep field value.
+ */
+ public boolean isFHasSep()
+ {
+ return fHasSep.isSet(field_2_flt);
+
+ }
+
+
+} // END OF CLASS
+
+
+
+
diff --git a/src/types/definitions/fld_type.xml b/src/types/definitions/fld_type.xml
new file mode 100644
index 0000000000..4ca480c995
--- /dev/null
+++ b/src/types/definitions/fld_type.xml
@@ -0,0 +1,49 @@
+<?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="FLD" package="org.apache.poi.hwpf.model.types">
+ <suffix>AbstractType</suffix>
+ <extends>HDFType</extends>
+ <description>Field Descriptor (FLD). &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="char" size="1" name="ch"
+ description="Type of field boundary the FLD describes: 19 -- field begin mark, 20 -- field separation mark; 21 -- field end mark"/>
+ <field type="byte" size="1" name="flt"
+ description="Field type when ch == 19 OR field flags when ch == 21 ">
+ <bit number="0" mask="0x01" name="fDiffer" description="Ignored for saved file"/>
+ <bit number="1" mask="0x02" name="fZombieEmbed"
+ description="==1 when result still believes this field is an EMBED or LINK field"/>
+ <bit number="2" mask="0x04" name="fResultDirty"
+ description="==1 when user has edited or formatted the result. == 0 otherwise"/>
+ <bit number="3" mask="0x08" name="fResultEdited"
+ description="==1 when user has inserted text into or deleted text from the result"/>
+ <bit number="4" mask="0x10" name="fLocked" description="==1 when field is locked from recalculation"/>
+ <bit number="5" mask="0x20" name="fPrivateResult"
+ description="==1 whenever the result of the field is never to be shown"/>
+ <bit number="6" mask="0x40" name="fNested" description="==1 when field is nested within another field"/>
+ <bit number="7" mask="0x40" name="fHasSep" description="==1 when field has a field separator"/>
+ </field>
+ </fields>
+</record>