Class EscherComplexProperty

java.lang.Object
org.apache.poi.ddf.EscherProperty
org.apache.poi.ddf.EscherComplexProperty
All Implemented Interfaces:
GenericRecord
Direct Known Subclasses:
EscherArrayProperty

public class EscherComplexProperty extends EscherProperty
A complex property differs from a simple property in that the data can not fit inside a 32 bit integer. See the specification for more detailed information regarding exactly what is stored here.
  • Constructor Details

    • EscherComplexProperty

      public EscherComplexProperty(short id, int complexSize)
      Create a complex property using the property id and a byte array containing the complex data value size.
      Parameters:
      id - The id consists of the property number, a flag indicating whether this is a blip id and a flag indicating that this is a complex property.
      complexSize - The byte size of this property.
    • EscherComplexProperty

      public EscherComplexProperty(short propertyNumber, boolean isBlipId, int complexSize)
      Create a complex property using the property number, a flag to indicate whether this is a blip reference and the complex property data size.
      Parameters:
      propertyNumber - The property number
      isBlipId - Whether this is a blip id. Should be false.
      complexSize - The byte size of this property.
    • EscherComplexProperty

      public EscherComplexProperty(EscherPropertyTypes type, boolean isBlipId, int complexSize)
      Create a complex property using the property type, a flag to indicate whether this is a blip reference and the complex property data size.
      Parameters:
      type - The property type
      isBlipId - Whether this is a blip id. Should be false.
      complexSize - The byte size of this property.
  • Method Details

    • setMaxRecordLength

      public static void setMaxRecordLength(int length)
      Parameters:
      length - the max record length allowed for EscherComplexProperty
    • getMaxRecordLength

      public static int getMaxRecordLength()
      Returns:
      the max record length allowed for EscherComplexProperty
    • serializeSimplePart

      public int serializeSimplePart(byte[] data, int pos)
      Serializes the simple part of this property. i.e. the first 6 bytes.
      Specified by:
      serializeSimplePart in class EscherProperty
      Parameters:
      data - the buffer to write to
      pos - the starting position
      Returns:
      the length of the part
    • serializeComplexPart

      public int serializeComplexPart(byte[] data, int pos)
      Serializes the complex part of this property
      Specified by:
      serializeComplexPart in class EscherProperty
      Parameters:
      data - The data array to serialize to
      pos - The offset within data to start serializing to.
      Returns:
      The number of bytes serialized.
    • getComplexData

      public byte[] getComplexData()
      Get the complex data value.
      Returns:
      the complex bytes
    • setComplexData

      public int setComplexData(byte[] complexData)
    • setComplexData

      public int setComplexData(byte[] complexData, int offset)
    • equals

      public boolean equals(Object o)
      Determine whether this property is equal to another property.
      Overrides:
      equals in class Object
      Parameters:
      o - The object to compare to.
      Returns:
      True if the objects are equal.
    • getPropertySize

      public int getPropertySize()
      Calculates the number of bytes required to serialize this property.
      Overrides:
      getPropertySize in class EscherProperty
      Returns:
      Number of bytes
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getGenericProperties

      public Map<String,Supplier<?>> getGenericProperties()
      Specified by:
      getGenericProperties in interface GenericRecord
      Overrides:
      getGenericProperties in class EscherProperty