public final class EscherContainerRecord extends EscherRecord implements java.lang.Iterable<EscherRecord>
| Modifier and Type | Field and 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 and Description |
|---|
EscherContainerRecord() |
EscherContainerRecord(EscherContainerRecord other) |
| Modifier and Type | Method and Description |
|---|---|
void |
addChildBefore(EscherRecord record,
int insertBeforeRecordId)
Add a child record before the record with given recordId
|
void |
addChildRecord(EscherRecord record)
Append a child record
|
EscherContainerRecord |
copy() |
void |
display(java.io.PrintWriter w,
int indent)
The display methods allows escher variables to print the record names
according to their hierarchy.
|
int |
fillFields(byte[] data,
int pOffset,
EscherRecordFactory recordFactory)
The contract of this method is to deserialize an escher record including
it's children.
|
EscherRecord |
getChild(int index)
Returns the indexed child record.
|
<T extends EscherRecord> |
getChildById(short recordId) |
java.util.List<EscherContainerRecord> |
getChildContainers()
Returns all of our children which are also
EscherContainers (may be 0, 1, or vary rarely 2 or 3)
|
java.util.List<EscherRecord> |
getChildRecords() |
java.util.Map<java.lang.String,java.util.function.Supplier<?>> |
getGenericProperties() |
java.lang.Enum |
getGenericRecordType() |
java.lang.String |
getRecordName()
Subclasses should return the short name for this escher record.
|
void |
getRecordsById(short recordId,
java.util.List<EscherRecord> out)
Recursively find records with the specified record ID
|
int |
getRecordSize()
Subclasses should effeciently return the number of bytes required to
serialize the record.
|
boolean |
hasChildOfType(short recordId)
Do any of our (top level) children have the given recordId?
|
java.util.Iterator<EscherRecord> |
iterator() |
boolean |
removeChildRecord(EscherRecord toBeRemoved)
Removes the given escher record from the child list
|
int |
serialize(int offset,
byte[] data,
EscherSerializationListener listener)
Serializes the record to an existing byte array.
|
void |
setChildRecords(java.util.List<EscherRecord> childRecords)
replaces the internal child list with the contents of the supplied childRecords
|
fillFields, getGenericChildren, getInstance, getOptions, getRecordId, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXmlpublic static final short DGG_CONTAINER
public static final short BSTORE_CONTAINER
public static final short DG_CONTAINER
public static final short SPGR_CONTAINER
public static final short SP_CONTAINER
public static final short SOLVER_CONTAINER
public EscherContainerRecord()
public EscherContainerRecord(EscherContainerRecord other)
public int fillFields(byte[] data,
int pOffset,
EscherRecordFactory recordFactory)
EscherRecordfillFields in class EscherRecorddata - The byte array containing the serialized escher
records.pOffset - The offset into the byte array.recordFactory - A factory for creating new escher records.public int serialize(int offset,
byte[] data,
EscherSerializationListener listener)
EscherRecordserialize in class EscherRecordoffset - 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 int getRecordSize()
EscherRecordgetRecordSize in class EscherRecordpublic boolean hasChildOfType(short recordId)
recordId - the recordId of the childpublic EscherRecord getChild(int index)
EscherRecordgetChild in class EscherRecordindex - the index of the child within the child recordspublic java.util.List<EscherRecord> getChildRecords()
getChildRecords in class EscherRecordEscherContainerRecordpublic java.util.Iterator<EscherRecord> iterator()
iterator in interface java.lang.Iterable<EscherRecord>public void setChildRecords(java.util.List<EscherRecord> childRecords)
setChildRecords in class EscherRecordchildRecords - Not used in base implementation.public boolean removeChildRecord(EscherRecord toBeRemoved)
toBeRemoved - the escher record to be removedpublic java.util.List<EscherContainerRecord> getChildContainers()
public java.lang.String getRecordName()
EscherRecordgetRecordName in class EscherRecordpublic void display(java.io.PrintWriter w,
int indent)
EscherRecorddisplay in class EscherRecordw - The print writer to output to.indent - The current indent level.public void addChildRecord(EscherRecord record)
record - the record to be addedpublic void addChildBefore(EscherRecord record, int insertBeforeRecordId)
record - the record to be addedinsertBeforeRecordId - the recordId of the next siblingpublic <T extends EscherRecord> T getChildById(short recordId)
public void getRecordsById(short recordId,
java.util.List<EscherRecord> out)
recordId - the recordId to be searched forout - - list to store found recordspublic java.util.Map<java.lang.String,java.util.function.Supplier<?>> getGenericProperties()
getGenericProperties in interface GenericRecordgetGenericProperties in class EscherRecordpublic java.lang.Enum getGenericRecordType()
getGenericRecordType in interface GenericRecordpublic EscherContainerRecord copy()
copy in interface Duplicatablecopy in class EscherRecord