public abstract class AbstractEscherOptRecord extends EscherRecord
EscherOptRecord
and
EscherTertiaryOptRecord
Constructor and Description |
---|
AbstractEscherOptRecord() |
Modifier and Type | Method and Description |
---|---|
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> |
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.
|
clone, display, fillFields, getChild, getChildRecords, getInstance, getOptions, getRecordId, getRecordName, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setChildRecords, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml
public void addEscherProperty(EscherProperty prop)
prop
- the escher property to addpublic int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
EscherRecord
fillFields
in class EscherRecord
data
- The byte array containing the serialized escher
records.offset
- The offset into the byte array.recordFactory
- A factory for creating new escher records.public java.util.List<EscherProperty> getEscherProperties()
public EscherProperty getEscherProperty(int index)
index
- the ordinal index of the propertypublic int getRecordSize()
EscherRecord
getRecordSize
in class EscherRecord
public <T extends EscherProperty> T lookup(int propId)
public int serialize(int offset, byte[] data, EscherSerializationListener listener)
EscherRecord
serialize
in class EscherRecord
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.public void sortProperties()
public void setEscherProperty(EscherProperty value)
value
- the property to set.public void removeEscherProperty(int num)
protected java.lang.Object[][] getAttributeMap()
EscherRecord
{ { "Attribute Name (Header)", value, "optional attribute", value }, ... }
.Null values won't be printed.
The attributes record, version, instance, options must not be returned.
getAttributeMap
in class EscherRecord
Copyright 2018 The Apache Software Foundation or its licensors, as applicable.