org.apache.poi.ddf

## Class EscherBSERecord

- java.lang.Object
- - org.apache.poi.ddf.EscherRecord
  - - org.apache.poi.ddf.EscherBSERecord

- All Implemented Interfaces:
    Duplicatable, GenericRecord

      public final class EscherBSERecord
      extends EscherRecord

  The BSE record is related closely to the `EscherBlipRecord` and stores extra information about the blip. A blip record is actually stored inside the BSE record even though the BSE record isn't actually a container record.
  See Also:
    `EscherBlipRecord`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static short` | `RECORD_ID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EscherBSERecord()`
    `EscherBSERecord(EscherBSERecord other)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `EscherBSERecord` | `copy()`
    `int` | `fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)` The contract of this method is to deserialize an escher record including it's children.
    `EscherBlipRecord` | `getBlipRecord()`
    `byte` | `getBlipTypeMacOS()` The expected blip type under MacOS (failure to match this blip type will result in Excel converting to this format).
    `byte` | `getBlipTypeWin32()` The expected blip type under windows (failure to match this blip type will result in Excel converting to this format).
    `java.util.Map<java.lang.String,java.util.function.Supplier<?>>` | `getGenericProperties()`
    `java.lang.Enum` | `getGenericRecordType()`
    `byte` | `getName()` The length in characters of the blip name.
    `int` | `getOffset()` File offset in the delay stream.
    `PictureData.PictureType` | `getPictureTypeMacOS()`
    `PictureData.PictureType` | `getPictureTypeWin32()`
    `java.lang.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` | `getRef()` The reference count of this blip.
    `byte[]` | `getRemainingData()` Any remaining data in this record.
    `int` | `getSize()` Blip size in stream.
    `short` | `getTag()` unused
    `byte[]` | `getUid()` 16 byte MD4 checksum.
    `byte` | `getUnused2()`
    `byte` | `getUnused3()`
    `byte` | `getUsage()` Defines the way this blip is used.
    `int` | `serialize(int offset, byte[] data, EscherSerializationListener listener)` Serializes the record to an existing byte array.
    `void` | `setBlipRecord(EscherBlipRecord blipRecord)`
    `void` | `setBlipTypeMacOS(byte blipTypeMacOS)` Set the expected MacOS blip type
    `void` | `setBlipTypeWin32(byte blipTypeWin32)` Set the expected win32 blip type
    `void` | `setName(byte name)` The length in characters of the blip name.
    `void` | `setOffset(int offset)` File offset in the delay stream.
    `void` | `setRef(int ref)` The reference count of this blip.
    `void` | `setRemainingData(byte[] remainingData)` Any remaining data in this record.
    `void` | `setSize(int size)` Blip size in stream.
    `void` | `setTag(short tag)` unused
    `void` | `setUid(byte[] uid)` 16 byte MD4 checksum.
    `void` | `setUnused2(byte unused2)`
    `void` | `setUnused3(byte unused3)`
    `void` | `setUsage(byte usage)` Defines the way this blip is used.

    - ### Methods inherited from class org.apache.poi.ddf.EscherRecord

      `clone, display, fillFields, getChild, getChildRecords, getGenericChildren, getInstance, getOptions, getRecordId, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setChildRecords, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### RECORD_ID

          public static final short RECORD_ID

  - ### Constructor Detail

    - #### EscherBSERecord

          public EscherBSERecord()

    - #### EscherBSERecord

          public EscherBSERecord(EscherBSERecord 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 it's children.
      Specified by:
        `fillFields` in class `EscherRecord`
      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 class `EscherRecord`
      Parameters:
        `offset` - the offset within the byte array
        `data` - the data array to serialize to
        `listener` - 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 class `EscherRecord`
      Returns:
        number of bytes

    - #### getRecordName

          public java.lang.String getRecordName()

      Description copied from class: `EscherRecord`
      Subclasses should return the short name for this escher record.
      Specified by:
        `getRecordName` in class `EscherRecord`
      Returns:
        the short name for this escher record

    - #### getBlipTypeWin32

          public byte getBlipTypeWin32()

      The expected blip type under windows (failure to match this blip type will result in Excel converting to this format).
      Returns:
        win32 blip type

    - #### getPictureTypeWin32

          public PictureData.PictureType getPictureTypeWin32()

    - #### setBlipTypeWin32

          public void setBlipTypeWin32(byte blipTypeWin32)

      Set the expected win32 blip type
      Parameters:
        `blipTypeWin32` - win32 blip type

    - #### getBlipTypeMacOS

          public byte getBlipTypeMacOS()

      The expected blip type under MacOS (failure to match this blip type will result in Excel converting to this format).
      Returns:
        MacOS blip type

    - #### getPictureTypeMacOS

          public PictureData.PictureType getPictureTypeMacOS()

    - #### setBlipTypeMacOS

          public void setBlipTypeMacOS(byte blipTypeMacOS)

      Set the expected MacOS blip type
      Parameters:
        `blipTypeMacOS` - MacOS blip type

    - #### getUid

          public byte[] getUid()

      16 byte MD4 checksum.
      Returns:
        16 byte MD4 checksum

    - #### setUid

          public void setUid(byte[] uid)

      16 byte MD4 checksum.
      Parameters:
        `uid` - 16 byte MD4 checksum

    - #### getTag

          public short getTag()

      unused
      Returns:
        an unknown tag

    - #### setTag

          public void setTag(short tag)

      unused
      Parameters:
        `tag` - unknown tag

    - #### getSize

          public int getSize()

      Blip size in stream.
      Returns:
        the blip size

    - #### setSize

          public void setSize(int size)

      Blip size in stream.
      Parameters:
        `size` - blip size

    - #### getRef

          public int getRef()

      The reference count of this blip.
      Returns:
        the reference count

    - #### setRef

          public void setRef(int ref)

      The reference count of this blip.
      Parameters:
        `ref` - the reference count

    - #### getOffset

          public int getOffset()

      File offset in the delay stream.
      Returns:
        the file offset

    - #### setOffset

          public void setOffset(int offset)

      File offset in the delay stream.
      Parameters:
        `offset` - the file offset

    - #### getUsage

          public byte getUsage()

      Defines the way this blip is used.
      Returns:
        the blip usage

    - #### setUsage

          public void setUsage(byte usage)

      Defines the way this blip is used.
      Parameters:
        `usage` - the blip usae

    - #### getName

          public byte getName()

      The length in characters of the blip name.
      Returns:
        the blip name length

    - #### setName

          public void setName(byte name)

      The length in characters of the blip name.
      Parameters:
        `name` - the blip name length

    - #### getUnused2

          public byte getUnused2()

    - #### setUnused2

          public void setUnused2(byte unused2)

    - #### getUnused3

          public byte getUnused3()

    - #### setUnused3

          public void setUnused3(byte unused3)

    - #### getBlipRecord

          public EscherBlipRecord getBlipRecord()

    - #### setBlipRecord

          public void setBlipRecord(EscherBlipRecord blipRecord)

    - #### getRemainingData

          public byte[] getRemainingData()

      Any remaining data in this record.
      Returns:
        the remaining bytes

    - #### setRemainingData

          public void setRemainingData(byte[] remainingData)

      Any remaining data in this record.
      Parameters:
        `remainingData` - the remaining bytes

    - #### getGenericProperties

          public java.util.Map<java.lang.String,java.util.function.Supplier<?>> getGenericProperties()

      Specified by:
        `getGenericProperties` in interface `GenericRecord`
      Overrides:
        `getGenericProperties` in class `EscherRecord`

    - #### getGenericRecordType

          public java.lang.Enum getGenericRecordType()

    - #### copy

          public EscherBSERecord copy()

      Specified by:
        `copy` in interface `Duplicatable`
      Specified by:
        `copy` in class `EscherRecord`
      Returns:
        a deep copy of the implementing class / instance

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.