Package org.apache.poi.ddf
Class EscherDggRecord
- java.lang.Object
-
- org.apache.poi.ddf.EscherRecord
-
- org.apache.poi.ddf.EscherDggRecord
-
- All Implemented Interfaces:
Duplicatable
,GenericRecord
public final class EscherDggRecord extends EscherRecord
This record defines the drawing groups used for a particular sheet.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EscherDggRecord.FileIdCluster
-
Field Summary
Fields Modifier and Type Field Description static short
RECORD_ID
-
Constructor Summary
Constructors Constructor Description EscherDggRecord()
EscherDggRecord(EscherDggRecord other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EscherDggRecord.FileIdCluster
addCluster(int dgId, int numShapedUsed)
Add a new clusterEscherDggRecord.FileIdCluster
addCluster(int dgId, int numShapedUsed, boolean sort)
Add a new clusterint
allocateShapeId(EscherDgRecord dg, boolean sort)
Allocates new shape id for the drawing groupEscherDggRecord
copy()
int
fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
The contract of this method is to deserialize an escher record including its children.short
findNewDrawingGroupId()
Finds the next available (1 based) drawing group idint
getDrawingsSaved()
Gets the number of drawings savedEscherDggRecord.FileIdCluster[]
getFileIdClusters()
Map<String,Supplier<?>>
getGenericProperties()
Enum
getGenericRecordType()
int
getMaxDrawingGroupId()
Gets the maximum drawing group IDint
getNumIdClusters()
Number of id clusters + 1int
getNumShapesSaved()
Gets the number of shapes savedshort
getRecordId()
Return the current record id.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
getShapeIdMax()
Gets the next available shape idint
serialize(int offset, byte[] data, EscherSerializationListener listener)
Serializes the record to an existing byte array.void
setDrawingsSaved(int drawingsSaved)
Sets the number of drawings savedvoid
setFileIdClusters(EscherDggRecord.FileIdCluster[] fileIdClusters)
Sets the file id clustersvoid
setNumShapesSaved(int numShapesSaved)
Sets the number of shapes savedvoid
setShapeIdMax(int shapeIdMax)
The maximum is actually the next available shape id.-
Methods inherited from class org.apache.poi.ddf.EscherRecord
display, fillFields, getChild, getChildRecords, getGenericChildren, getInstance, getOptions, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setChildRecords, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml
-
-
-
-
Constructor Detail
-
EscherDggRecord
public EscherDggRecord()
-
EscherDggRecord
public EscherDggRecord(EscherDggRecord other)
-
-
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 its 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
-
getRecordId
public short getRecordId()
Description copied from class:EscherRecord
Return the current record id.- Overrides:
getRecordId
in classEscherRecord
- Returns:
- The 16 bit record id.
-
getRecordName
public String getRecordName()
Description copied from class:EscherRecord
Subclasses should return the short name for this escher record.- Specified by:
getRecordName
in classEscherRecord
- Returns:
- the short name for this escher record
-
getShapeIdMax
public int getShapeIdMax()
Gets the next available shape id- Returns:
- the next available shape id
-
setShapeIdMax
public void setShapeIdMax(int shapeIdMax)
The maximum is actually the next available shape id.- Parameters:
shapeIdMax
- the next available shape id
-
getNumIdClusters
public int getNumIdClusters()
Number of id clusters + 1- Returns:
- the number of id clusters + 1
-
getNumShapesSaved
public int getNumShapesSaved()
Gets the number of shapes saved- Returns:
- the number of shapes saved
-
setNumShapesSaved
public void setNumShapesSaved(int numShapesSaved)
Sets the number of shapes saved- Parameters:
numShapesSaved
- the number of shapes saved
-
getDrawingsSaved
public int getDrawingsSaved()
Gets the number of drawings saved- Returns:
- the number of drawings saved
-
setDrawingsSaved
public void setDrawingsSaved(int drawingsSaved)
Sets the number of drawings saved- Parameters:
drawingsSaved
- the number of drawings saved
-
getMaxDrawingGroupId
public int getMaxDrawingGroupId()
Gets the maximum drawing group ID- Returns:
- The maximum drawing group ID
-
getFileIdClusters
public EscherDggRecord.FileIdCluster[] getFileIdClusters()
- Returns:
- the file id clusters
-
setFileIdClusters
public void setFileIdClusters(EscherDggRecord.FileIdCluster[] fileIdClusters)
Sets the file id clusters- Parameters:
fileIdClusters
- the file id clusters
-
addCluster
public EscherDggRecord.FileIdCluster addCluster(int dgId, int numShapedUsed)
Add a new cluster- Parameters:
dgId
- id of the drawing group (stored in the record options)numShapedUsed
- initial value of the numShapedUsed field- Returns:
- the new
EscherDggRecord.FileIdCluster
-
addCluster
public EscherDggRecord.FileIdCluster addCluster(int dgId, int numShapedUsed, boolean sort)
Add a new cluster- Parameters:
dgId
- id of the drawing group (stored in the record options)numShapedUsed
- initial value of the numShapedUsed fieldsort
- if true then sort clusters by drawing group id.( In Excel the clusters are sorted but in PPT they are not)- Returns:
- the new
EscherDggRecord.FileIdCluster
-
findNewDrawingGroupId
public short findNewDrawingGroupId()
Finds the next available (1 based) drawing group id- Returns:
- the next available drawing group id
-
allocateShapeId
public int allocateShapeId(EscherDgRecord dg, boolean sort)
Allocates new shape id for the drawing group- Parameters:
dg
- the EscherDgRecord which receives the new shapesort
- if true then sort clusters by drawing group id.( In Excel the clusters are sorted but in PPT they are not)- Returns:
- a new shape id.
-
getGenericRecordType
public Enum getGenericRecordType()
-
getGenericProperties
public Map<String,Supplier<?>> getGenericProperties()
- Specified by:
getGenericProperties
in interfaceGenericRecord
- Overrides:
getGenericProperties
in classEscherRecord
-
copy
public EscherDggRecord copy()
- Specified by:
copy
in interfaceDuplicatable
- Specified by:
copy
in classEscherRecord
- Returns:
- a deep copy of the implementing class / instance
-
-