AbstractEscherOptRecord
, EscherBlipRecord
, EscherBSERecord
, EscherChildAnchorRecord
, EscherClientAnchorRecord
, EscherClientDataRecord
, EscherContainerRecord
, EscherDggRecord
, EscherDgRecord
, EscherSpgrRecord
, EscherSplitMenuColorsRecord
, EscherSpRecord
, EscherTextboxRecord
, UnknownEscherRecord
public abstract class EscherRecord
extends java.lang.Object
Constructor | Description |
---|---|
EscherRecord() |
Create a new instance
|
Modifier and Type | Method | Description |
---|---|---|
java.lang.Object |
clone() |
Escher records may need to be clonable in the future.
|
void |
display(java.io.PrintWriter w,
int indent) |
The display methods allows escher variables to print the record names
according to their hierarchy.
|
abstract int |
fillFields(byte[] data,
int offset,
EscherRecordFactory recordFactory) |
The contract of this method is to deserialize an escher record including
it's children.
|
protected int |
fillFields(byte[] data,
EscherRecordFactory f) |
Delegates to fillFields(byte[], int, EscherRecordFactory)
|
protected java.lang.String |
formatXmlRecordHeader(java.lang.String className,
java.lang.String recordId,
java.lang.String version,
java.lang.String instance) |
|
EscherRecord |
getChild(int index) |
Returns the indexed child record.
|
java.util.List<EscherRecord> |
getChildRecords() |
|
short |
getInstance() |
Returns the instance part of the option record.
|
short |
getOptions() |
options is an internal field. |
short |
getRecordId() |
Return the current record id.
|
abstract java.lang.String |
getRecordName() |
Subclasses should return the short name for this escher record.
|
abstract int |
getRecordSize() |
Subclasses should effeciently return the number of bytes required to
serialize the record.
|
short |
getVersion() |
Returns the version part of the option record.
|
boolean |
isContainerRecord() |
Determine whether this is a container record by inspecting the option
field.
|
protected int |
readHeader(byte[] data,
int offset) |
Reads the 8 byte header information and populates the
options
and recordId records. |
protected static short |
readInstance(byte[] data,
int offset) |
Read the options field from header and return instance part of it.
|
byte[] |
serialize() |
Serializes to a new byte array.
|
int |
serialize(int offset,
byte[] data) |
Serializes to an existing byte array without serialization listener.
|
abstract int |
serialize(int offset,
byte[] data,
EscherSerializationListener listener) |
Serializes the record to an existing byte array.
|
void |
setChildRecords(java.util.List<EscherRecord> childRecords) |
Sets the child records for this record.
|
void |
setInstance(short value) |
Sets the instance part of record
|
void |
setOptions(short options) |
Set the options this this record.
|
void |
setRecordId(short recordId) |
Sets the record id for this record.
|
void |
setVersion(short value) |
Sets the version part of record
|
java.lang.String |
toXml() |
|
java.lang.String |
toXml(java.lang.String tab) |
protected int fillFields(byte[] data, EscherRecordFactory f)
public abstract int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
data
- The byte array containing the serialized escher
records.offset
- The offset into the byte array.recordFactory
- A factory for creating new escher records.protected int readHeader(byte[] data, int offset)
options
and recordId
records.data
- the byte array to read fromoffset
- the offset to start reading fromprotected static short readInstance(byte[] data, int offset)
data
- the byte array to read fromoffset
- the offset to start reading frompublic boolean isContainerRecord()
@Internal public short getOptions()
options is an internal field. Use setInstance(short)
()} and
setVersion(short)
()} to set the actual fields.
@Internal public void setOptions(short options)
options is an internal field. Use getInstance()
and
getVersion()
to access actual fields.
public byte[] serialize()
serialize(int, byte[])
public int serialize(int offset, byte[] data)
offset
- the offset within the data byte array.data
- the data array to serialize to.serialize(int, byte[], org.apache.poi.ddf.EscherSerializationListener)
public abstract int serialize(int offset, byte[] data, EscherSerializationListener listener)
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 abstract int getRecordSize()
public short getRecordId()
public void setRecordId(short recordId)
public java.util.List<EscherRecord> getChildRecords()
EscherContainerRecord
public void setChildRecords(java.util.List<EscherRecord> childRecords)
childRecords
- Not used in base implementation.public java.lang.Object clone()
clone
in class java.lang.Object
public EscherRecord getChild(int index)
public void display(java.io.PrintWriter w, int indent)
w
- The print writer to output to.indent
- The current indent level.public abstract java.lang.String getRecordName()
public short getInstance()
public void setInstance(short value)
value
- instance part valuepublic short getVersion()
public void setVersion(short value)
value
- version part valuepublic java.lang.String toXml(java.lang.String tab)
tab
- - each children must be a right of his parentprotected java.lang.String formatXmlRecordHeader(java.lang.String className, java.lang.String recordId, java.lang.String version, java.lang.String instance)
public java.lang.String toXml()
Copyright 2018 The Apache Software Foundation or its licensors, as applicable.