org.apache.poi.ddf
Class EscherBSERecord

java.lang.Object
  extended by org.apache.poi.ddf.EscherRecord
      extended by org.apache.poi.ddf.EscherBSERecord
All Implemented Interfaces:
java.lang.Cloneable

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
static byte BT_DIB
           
static byte BT_EMF
           
static byte BT_ERROR
           
static byte BT_JPEG
           
static byte BT_PICT
           
static byte BT_PNG
           
static byte BT_UNKNOWN
           
static byte BT_WMF
           
static java.lang.String RECORD_DESCRIPTION
           
static short RECORD_ID
           
 
Constructor Summary
EscherBSERecord()
           
 
Method Summary
 int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
          The contract of this method is to deserialize an escher record including it's children.
protected  java.lang.Object[][] getAttributeMap()
          For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form { { "Attribute Name (Header)", value, "optional attribute", value }, ...
 EscherBlipRecord getBlipRecord()
           
static java.lang.String getBlipType(byte b)
          Retrieve the string representation given a blip id.
 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).
 byte getName()
          The length in characters of the blip name.
 int getOffset()
          File offset in the delay stream.
 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, 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
See Also:
Constant Field Values

RECORD_DESCRIPTION

public static final java.lang.String RECORD_DESCRIPTION
See Also:
Constant Field Values

BT_ERROR

public static final byte BT_ERROR
See Also:
Constant Field Values

BT_UNKNOWN

public static final byte BT_UNKNOWN
See Also:
Constant Field Values

BT_EMF

public static final byte BT_EMF
See Also:
Constant Field Values

BT_WMF

public static final byte BT_WMF
See Also:
Constant Field Values

BT_PICT

public static final byte BT_PICT
See Also:
Constant Field Values

BT_JPEG

public static final byte BT_JPEG
See Also:
Constant Field Values

BT_PNG

public static final byte BT_PNG
See Also:
Constant Field Values

BT_DIB

public static final byte BT_DIB
See Also:
Constant Field Values
Constructor Detail

EscherBSERecord

public EscherBSERecord()
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

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

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

getBlipType

public static java.lang.String getBlipType(byte b)
Retrieve the string representation given a blip id.

Parameters:
b - the blip type byte-encoded
Returns:
the blip type as string

getAttributeMap

protected java.lang.Object[][] getAttributeMap()
Description copied from class: EscherRecord
For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form { { "Attribute Name (Header)", value, "optional attribute", value }, ... } .

Null values won't be printed.

The attributes record, version, instance, options must not be returned.

Specified by:
getAttributeMap in class EscherRecord
Returns:
the attribute map