org.apache.poi.ddf
Class AbstractEscherOptRecord

java.lang.Object
  extended by org.apache.poi.ddf.EscherRecord
      extended by org.apache.poi.ddf.AbstractEscherOptRecord
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
EscherOptRecord, EscherTertiaryOptRecord

public abstract class AbstractEscherOptRecord
extends EscherRecord

Common abstract class for EscherOptRecord and EscherTertiaryOptRecord


Constructor Summary
AbstractEscherOptRecord()
           
 
Method Summary
 void addEscherProperty(EscherProperty prop)
          Add a property to this record.
 int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
          The contract of this method is to deserialize an escher record including it's children.
protected  java.lang.Object[][] getAttributeMap()
          For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form { { "Attribute Name (Header)", value, "optional attribute", value }, ...
 java.util.List<EscherProperty> getEscherProperties()
          The list of properties stored by this record.
 EscherProperty getEscherProperty(int index)
          The list of properties stored by this record.
 int getRecordSize()
          Subclasses should effeciently return the number of bytes required to serialize the record.
<T extends EscherProperty>
T
lookup(int propId)
           
 void removeEscherProperty(int num)
           
 int serialize(int offset, byte[] data, EscherSerializationListener listener)
          Serializes the record to an existing byte array.
 void setEscherProperty(EscherProperty value)
          Set an escher property.
 void sortProperties()
          Records should be sorted by property number before being stored.
 
Methods inherited from class org.apache.poi.ddf.EscherRecord
clone, display, fillFields, getChild, getChildRecords, getInstance, getOptions, getRecordId, getRecordName, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setChildRecords, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractEscherOptRecord

public AbstractEscherOptRecord()
Method Detail

addEscherProperty

public void addEscherProperty(EscherProperty prop)
Add a property to this record.

Parameters:
prop - the escher property to add

fillFields

public int fillFields(byte[] data,
                      int offset,
                      EscherRecordFactory recordFactory)
Description copied from class: EscherRecord
The contract of this method is to deserialize an escher record including it's children.

Specified by:
fillFields in class EscherRecord
Parameters:
data - The byte array containing the serialized escher records.
offset - The offset into the byte array.
recordFactory - A factory for creating new escher records.
Returns:
The number of bytes written.

getEscherProperties

public java.util.List<EscherProperty> getEscherProperties()
The list of properties stored by this record.

Returns:
the list of properties

getEscherProperty

public EscherProperty getEscherProperty(int index)
The list of properties stored by this record.

Parameters:
index - the ordinal index of the property
Returns:
the escher property

getRecordSize

public int getRecordSize()
Description copied from class: EscherRecord
Subclasses should effeciently return the number of bytes required to serialize the record.

Specified by:
getRecordSize in class EscherRecord
Returns:
number of bytes

lookup

public <T extends EscherProperty> T lookup(int propId)

serialize

public int serialize(int offset,
                     byte[] data,
                     EscherSerializationListener listener)
Description copied from class: EscherRecord
Serializes the record to an existing byte array.

Specified by:
serialize in class EscherRecord
Parameters:
offset - the offset within the byte array
data - the data array to serialize to
listener - a listener for begin and end serialization events. This is useful because the serialization is hierarchical/recursive and sometimes you need to be able break into that.
Returns:
the number of bytes written.

sortProperties

public void sortProperties()
Records should be sorted by property number before being stored.


setEscherProperty

public void setEscherProperty(EscherProperty value)
Set an escher property. If a property with given propId already exists it is replaced.

Parameters:
value - the property to set.

removeEscherProperty

public void removeEscherProperty(int num)

getAttributeMap

protected java.lang.Object[][] getAttributeMap()
Description copied from class: EscherRecord
For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form { { "Attribute Name (Header)", value, "optional attribute", value }, ... } .

Null values won't be printed.

The attributes record, version, instance, options must not be returned.

Specified by:
getAttributeMap in class EscherRecord
Returns:
the attribute map