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 classEscherDggRecord.FileIdCluster
-
Field Summary
Fields Modifier and Type Field Description static shortRECORD_ID
-
Constructor Summary
Constructors Constructor Description EscherDggRecord()EscherDggRecord(EscherDggRecord other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EscherDggRecord.FileIdClusteraddCluster(int dgId, int numShapedUsed)Add a new clusterEscherDggRecord.FileIdClusteraddCluster(int dgId, int numShapedUsed, boolean sort)Add a new clusterintallocateShapeId(EscherDgRecord dg, boolean sort)Allocates new shape id for the drawing groupEscherDggRecordcopy()intfillFields(byte[] data, int offset, EscherRecordFactory recordFactory)The contract of this method is to deserialize an escher record including its children.shortfindNewDrawingGroupId()Finds the next available (1 based) drawing group idintgetDrawingsSaved()Gets the number of drawings savedEscherDggRecord.FileIdCluster[]getFileIdClusters()Map<String,Supplier<?>>getGenericProperties()EnumgetGenericRecordType()intgetMaxDrawingGroupId()Gets the maximum drawing group IDintgetNumIdClusters()Number of id clusters + 1intgetNumShapesSaved()Gets the number of shapes savedshortgetRecordId()Return the current record id.StringgetRecordName()Subclasses should return the short name for this escher record.intgetRecordSize()Subclasses should effeciently return the number of bytes required to serialize the record.intgetShapeIdMax()Gets the next available shape idintserialize(int offset, byte[] data, EscherSerializationListener listener)Serializes the record to an existing byte array.voidsetDrawingsSaved(int drawingsSaved)Sets the number of drawings savedvoidsetFileIdClusters(EscherDggRecord.FileIdCluster[] fileIdClusters)Sets the file id clustersvoidsetNumShapesSaved(int numShapesSaved)Sets the number of shapes savedvoidsetShapeIdMax(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:EscherRecordThe contract of this method is to deserialize an escher record including its children.- Specified by:
fillFieldsin 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:EscherRecordSerializes the record to an existing byte array.- Specified by:
serializein 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:EscherRecordSubclasses should effeciently return the number of bytes required to serialize the record.- Specified by:
getRecordSizein classEscherRecord- Returns:
- number of bytes
-
getRecordId
public short getRecordId()
Description copied from class:EscherRecordReturn the current record id.- Overrides:
getRecordIdin classEscherRecord- Returns:
- The 16 bit record id.
-
getRecordName
public String getRecordName()
Description copied from class:EscherRecordSubclasses should return the short name for this escher record.- Specified by:
getRecordNamein 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:
getGenericPropertiesin interfaceGenericRecord- Overrides:
getGenericPropertiesin classEscherRecord
-
copy
public EscherDggRecord copy()
- Specified by:
copyin interfaceDuplicatable- Specified by:
copyin classEscherRecord- Returns:
- a deep copy of the implementing class / instance
-
-