Package loci.poi.ddf
Class EscherContainerRecord
- java.lang.Object
-
- loci.poi.ddf.EscherRecord
-
- loci.poi.ddf.EscherContainerRecord
-
public class EscherContainerRecord extends EscherRecord
Escher container records store other escher records as children. The container records themselves never store any information beyond the standard header used by all escher records. This one record is used to represent many different types of records.- Author:
- Glen Stampoultzis
-
-
Field Summary
Fields Modifier and Type Field Description static short
BSTORE_CONTAINER
static short
DG_CONTAINER
static short
DGG_CONTAINER
static short
SOLVER_CONTAINER
static short
SP_CONTAINER
static short
SPGR_CONTAINER
-
Constructor Summary
Constructors Constructor Description EscherContainerRecord()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChildRecord(EscherRecord record)
void
display(PrintWriter w, int indent)
The display methods allows escher variables to print the record names according to their hierarchy.int
fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
The contract of this method is to deserialize an escher record including it's children.EscherSpRecord
getChildById(short recordId)
List
getChildRecords()
String
getRecordName()
Subclasses should return the short name for this escher record.int
getRecordSize()
Subclasses should effeciently return the number of bytes required to serialize the record.int
serialize(int offset, byte[] data, EscherSerializationListener listener)
Serializes the record to an existing byte array.void
setChildRecords(List childRecords)
Sets the child records for this record.String
toString()
-
Methods inherited from class loci.poi.ddf.EscherRecord
clone, fillFields, getChild, getInstance, getOptions, getRecordId, isContainerRecord, readHeader, serialize, serialize, setOptions, setRecordId
-
-
-
-
Field Detail
-
DGG_CONTAINER
public static final short DGG_CONTAINER
- See Also:
- Constant Field Values
-
BSTORE_CONTAINER
public static final short BSTORE_CONTAINER
- See Also:
- Constant Field Values
-
DG_CONTAINER
public static final short DG_CONTAINER
- See Also:
- Constant Field Values
-
SPGR_CONTAINER
public static final short SPGR_CONTAINER
- See Also:
- Constant Field Values
-
SP_CONTAINER
public static final short SP_CONTAINER
- See Also:
- Constant Field Values
-
SOLVER_CONTAINER
public static final short SOLVER_CONTAINER
- See Also:
- Constant Field Values
-
-
Method Detail
-
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 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.
-
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 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.
-
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 classEscherRecord
- Returns:
- number of bytes
-
getChildRecords
public List getChildRecords()
- Overrides:
getChildRecords
in classEscherRecord
- Returns:
- Returns the children of this record. By default this will be an empty list. EscherCotainerRecord is the only record that may contain children.
- See Also:
EscherContainerRecord
-
setChildRecords
public void setChildRecords(List childRecords)
Description copied from class:EscherRecord
Sets the child records for this record. By default this will throw an exception as only EscherContainerRecords may have children.- Overrides:
setChildRecords
in classEscherRecord
- Parameters:
childRecords
- Not used in base implementation.
-
getRecordName
public String getRecordName()
Description copied from class:EscherRecord
Subclasses should return the short name for this escher record.- Specified by:
getRecordName
in classEscherRecord
-
display
public void display(PrintWriter w, int indent)
Description copied from class:EscherRecord
The display methods allows escher variables to print the record names according to their hierarchy.- Overrides:
display
in classEscherRecord
- Parameters:
w
- The print writer to output to.indent
- The current indent level.
-
addChildRecord
public void addChildRecord(EscherRecord record)
-
getChildById
public EscherSpRecord getChildById(short recordId)
-
-