Package org.apache.poi.ddf
Class AbstractEscherOptRecord
- java.lang.Object
-
- org.apache.poi.ddf.EscherRecord
-
- 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 forEscherOptRecordandEscherTertiaryOptRecord
-
-
Constructor Summary
Constructors Constructor Description AbstractEscherOptRecord()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEscherProperty(EscherProperty prop)Add a property to this record.intfillFields(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.EscherPropertygetEscherProperty(int index)The list of properties stored by this record.intgetRecordSize()Subclasses should effeciently return the number of bytes required to serialize the record.<T extends EscherProperty>
Tlookup(int propId)voidremoveEscherProperty(int num)intserialize(int offset, byte[] data, EscherSerializationListener listener)Serializes the record to an existing byte array.voidsetEscherProperty(EscherProperty value)Set an escher property.voidsortProperties()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
-
-
-
-
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:EscherRecordThe contract of this method is to deserialize an escher record including it's children.- Specified by:
fillFieldsin classEscherRecord- 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:EscherRecordSubclasses should effeciently return the number of bytes required to serialize the record.- Specified by:
getRecordSizein classEscherRecord- 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:EscherRecordSerializes the record to an existing byte array.- Specified by:
serializein classEscherRecord- Parameters:
offset- the offset within the byte arraydata- the data array to serialize tolistener- 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:EscherRecordFor 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:
getAttributeMapin classEscherRecord- Returns:
- the attribute map
-
-