## com.lowagie.text.rtf.field
Class RtfField

    java.lang.Object
      com.lowagie.text.Chunk
          com.lowagie.text.rtf.field.RtfField

All Implemented Interfaces:
  Element, MarkupAttributes, RtfBasicElement

Direct Known Subclasses:
  RtfAnchor, RtfPageNumber, RtfTableOfContents, RtfTOCEntry, RtfTotalPageNumber

    public abstract class RtfField

extends Chunk
implements RtfBasicElement

The RtfField class is an abstract base class for all rtf field functionality. Subclasses only need to implement the two abstract methods writeFieldInstContent and writeFieldResultContent. All other field functionality is handled by the RtfField class.

Version:
  $Version:$
Author:
  Mark Hall (mhall@edu.uni-klu.ac.at), Dirk Weigenand (Dirk.Weigenand@smb-tec.com)

Field Summary
`protected RtfDocument` `document` The RtfDocument this RtfField belongs to
`private static byte[]` `FIELD` Constant for a rtf field
`private static byte[]` `FIELD_ALT` Constant for an alt field
`private static byte[]` `FIELD_DIRTY` Constant for a dirty field
`private static byte[]` `FIELD_EDIT` Constant for a edited field
`private static byte[]` `FIELD_INSTRUCTIONS` Constant for the field instructions
`private static byte[]` `FIELD_LOCKED` Constant for a locked field
`private static byte[]` `FIELD_PRIVATE` Constant for a private field
`private static byte[]` `FIELD_RESULT` Constant for the field result
`private boolean` `fieldAlt` Is it an alt field
`private boolean` `fieldDirty` Is the field dirty
`private boolean` `fieldEdit` Is the field edited
`private boolean` `fieldLocked` Is the field locked
`private boolean` `fieldPrivate` Is the field private
`private RtfFont` `font` The RtfFont of this RtfField
`private boolean` `inHeader` Whether this RtfElement is in a header
`private boolean` `inTable` Whether this RtfField is in a table

Fields inherited from class com.lowagie.text.Chunk
`ACTION, attributes, BACKGROUND, COLOR, content, ENCODING, GENERICTAG, HSCALE, HYPHENATION, IMAGE, LOCALDESTINATION, LOCALGOTO, markupAttributes, NEWLINE, NEWPAGE, NEXTPAGE, OBJECT_REPLACEMENT_CHARACTER, PDFANNOTATION, REMOTEGOTO, SKEW, SPLITCHARACTER, SUBSUPSCRIPT, TEXTRENDERMODE, UNDERLINE`

Fields inherited from interface com.lowagie.text.rtf.RtfBasicElement
`CLOSE_GROUP, COMMA_DELIMITER, DELIMITER, OPEN_GROUP, TWIPS_FACTOR`

Constructor Summary
`protected` `RtfField(RtfDocument doc)` Constructs a RtfField for a RtfDocument.
`protected` `RtfField(RtfDocument doc, Font font)` Constructs a RtfField for a RtfDocument.

Method Summary
`boolean` `isEmpty()` An RtfField is never empty.
`boolean` `isFieldAlt()` Get whether this field is an alt field
`boolean` `isFieldDirty()` Get whether this field is dirty
`boolean` `isFieldEdit()` Get whether this field is edited
`boolean` `isFieldLocked()` Get whether this field is locked
`boolean` `isFieldPrivate()` Get whether this field is private
`void` `setFieldAlt(boolean fieldAlt)` Set whether this field is an alt field
`void` `setFieldDirty(boolean fieldDirty)` Set whether this field is dirty
`void` `setFieldEdit(boolean fieldEdit)` Set whether this field is edited.
`void` `setFieldLocked(boolean fieldLocked)` Set whether this field is locked
`void` `setFieldPrivate(boolean fieldPrivate)` Set whether this field is private
`void` `setInHeader(boolean inHeader)` Sets whether this RtfField is in a header
`void` `setInTable(boolean inTable)` Sets whether this RtfField is in a table
`void` `setRtfDocument(RtfDocument doc)` Sets the RtfDocument this RtfElement belongs to
`byte[]` `write()` Write the content of this RtfField.
`private byte[]` `writeFieldBegin()` Writes the field beginning.
`private byte[]` `writeFieldEnd()` Writes the end of the field
`private byte[]` `writeFieldInstBegin()` Writes the beginning of the field instruction area.
`protected abstract byte[]` `writeFieldInstContent()` Writes the content of the field instruction area.
`private byte[]` `writeFieldInstEnd()` Writes the end of the field instruction area.
`private byte[]` `writeFieldResultBegin()` Writes the beginning of the field result area
`protected abstract byte[]` `writeFieldResultContent()` Writes the content of the pre-calculated field result.
`private byte[]` `writeFieldResultEnd()` Writes the end of the field result area

Methods inherited from class com.lowagie.text.Chunk

`addToArray, append, content, font, getAttributes, getChunks, getHorizontalScaling, getImage, getKeySet, getMarkupAttribute, getMarkupAttributeNames, getMarkupAttributes, getTextRise, getWidthPoint, hasAttributes, isTag, process, setAction, setAnchor, setAnchor, setAnnotation, setBackground, setBackground, setFont, setGenericTag, setHorizontalScaling, setHyphenation, setLocalDestination, setLocalGoto, setMarkupAttribute, setMarkupAttributes, setNewPage, setRemoteGoto, setRemoteGoto, setSkew, setSplitCharacter, setTextRenderMode, setTextRise, setUnderline, setUnderline, toString, type`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### FIELD

    private static final byte[] FIELD

  Constant for a rtf field

### FIELD_DIRTY

    private static final byte[] FIELD_DIRTY

  Constant for a dirty field

### FIELD_PRIVATE

    private static final byte[] FIELD_PRIVATE

  Constant for a private field

### FIELD_LOCKED

    private static final byte[] FIELD_LOCKED

  Constant for a locked field

### FIELD_EDIT

    private static final byte[] FIELD_EDIT

  Constant for a edited field

### FIELD_ALT

    private static final byte[] FIELD_ALT

  Constant for an alt field

### FIELD_INSTRUCTIONS

    private static final byte[] FIELD_INSTRUCTIONS

  Constant for the field instructions

### FIELD_RESULT

    private static final byte[] FIELD_RESULT

  Constant for the field result

### fieldDirty

    private boolean fieldDirty

  Is the field dirty

### fieldEdit

    private boolean fieldEdit

  Is the field edited

### fieldLocked

    private boolean fieldLocked

  Is the field locked

### fieldPrivate

    private boolean fieldPrivate

  Is the field private

### fieldAlt

    private boolean fieldAlt

  Is it an alt field

### inTable

    private boolean inTable

  Whether this RtfField is in a table

### inHeader

    private boolean inHeader

  Whether this RtfElement is in a header

### document

    protected RtfDocument document

  The RtfDocument this RtfField belongs to

### font

    private RtfFont font

  The RtfFont of this RtfField

Constructor Detail

### RtfField

    protected RtfField(RtfDocument doc)

  Constructs a RtfField for a RtfDocument. This is not very usefull, since the RtfField by itself does not do anything. Use one of the subclasses instead.

  Parameters:
    `doc` - The RtfDocument this RtfField belongs to.

### RtfField

    protected RtfField(RtfDocument doc,
                       Font font)

  Constructs a RtfField for a RtfDocument. This is not very usefull, since the RtfField by itself does not do anything. Use one of the subclasses instead.

  Parameters:
    `doc` - The RtfDocument this RtfField belongs to.
    `font` - The Font this RtfField should use

Method Detail

### setRtfDocument

    public void setRtfDocument(RtfDocument doc)

  Sets the RtfDocument this RtfElement belongs to

  Specified by:
    `setRtfDocument` in interface `RtfBasicElement`
  Parameters:
    `doc` - The RtfDocument to use

### writeFieldBegin

    private byte[] writeFieldBegin()
                            throws java.io.IOException

  Writes the field beginning. Also writes field properties.

  Returns:
    A byte array with the field beginning.
  Throws:
    `java.io.IOException`

### writeFieldInstBegin

    private byte[] writeFieldInstBegin()
                                throws java.io.IOException

  Writes the beginning of the field instruction area.

  Returns:
    The beginning of the field instruction area
  Throws:
    `java.io.IOException`

### writeFieldInstContent

    protected abstract byte[] writeFieldInstContent()
                                             throws java.io.IOException

  Writes the content of the field instruction area. Override this method in your subclasses.

  Returns:
    The content of the field instruction area
  Throws:
    `java.io.IOException` - If an error occurs.

### writeFieldInstEnd

    private byte[] writeFieldInstEnd()
                              throws java.io.IOException

  Writes the end of the field instruction area.

  Returns:
    A byte array containing the end of the field instruction area
  Throws:
    `java.io.IOException`

### writeFieldResultBegin

    private byte[] writeFieldResultBegin()
                                  throws java.io.IOException

  Writes the beginning of the field result area

  Returns:
    A byte array containing the beginning of the field result area
  Throws:
    `java.io.IOException`

### writeFieldResultContent

    protected abstract byte[] writeFieldResultContent()
                                               throws java.io.IOException

  Writes the content of the pre-calculated field result. Override this method in your subclasses.

  Returns:
    A byte array containing the field result
  Throws:
    `java.io.IOException` - If an error occurs

### writeFieldResultEnd

    private byte[] writeFieldResultEnd()
                                throws java.io.IOException

  Writes the end of the field result area

  Returns:
    A byte array containing the end of the field result area
  Throws:
    `java.io.IOException`

### writeFieldEnd

    private byte[] writeFieldEnd()
                          throws java.io.IOException

  Writes the end of the field

  Returns:
    A byte array containing the end of the field
  Throws:
    `java.io.IOException`

### write

    public byte[] write()

  Write the content of this RtfField.

  Specified by:
    `write` in interface `RtfBasicElement`
  Returns:
    A byte array containing the content of this RtfField

### isFieldAlt

    public boolean isFieldAlt()

  Get whether this field is an alt field

  Returns:
    Returns whether this field is an alt field

### setFieldAlt

    public void setFieldAlt(boolean fieldAlt)

  Set whether this field is an alt field

  Parameters:
    `fieldAlt` - The value to use

### isFieldDirty

    public boolean isFieldDirty()

  Get whether this field is dirty

  Returns:
    Returns whether this field is dirty

### setFieldDirty

    public void setFieldDirty(boolean fieldDirty)

  Set whether this field is dirty

  Parameters:
    `fieldDirty` - The value to use

### isFieldEdit

    public boolean isFieldEdit()

  Get whether this field is edited

  Returns:
    Returns whether this field is edited

### setFieldEdit

    public void setFieldEdit(boolean fieldEdit)

  Set whether this field is edited.

  Parameters:
    `fieldEdit` - The value to use

### isFieldLocked

    public boolean isFieldLocked()

  Get whether this field is locked

  Returns:
    Returns the fieldLocked.

### setFieldLocked

    public void setFieldLocked(boolean fieldLocked)

  Set whether this field is locked

  Parameters:
    `fieldLocked` - The value to use

### isFieldPrivate

    public boolean isFieldPrivate()

  Get whether this field is private

  Returns:
    Returns the fieldPrivate.

### setFieldPrivate

    public void setFieldPrivate(boolean fieldPrivate)

  Set whether this field is private

  Parameters:
    `fieldPrivate` - The value to use

### setInTable

    public void setInTable(boolean inTable)

  Sets whether this RtfField is in a table

  Specified by:
    `setInTable` in interface `RtfBasicElement`
  Parameters:
    `inTable` - `True` if this RtfField is in a table, `false` otherwise

### setInHeader

    public void setInHeader(boolean inHeader)

  Sets whether this RtfField is in a header

  Specified by:
    `setInHeader` in interface `RtfBasicElement`
  Parameters:
    `inHeader` - `True` if this RtfField is in a header, `false` otherwise

### isEmpty

    public boolean isEmpty()

  An RtfField is never empty.

  Overrides:
    `isEmpty` in class `Chunk`
  Returns:
    `false` if the Chunk contains other characters than space.