# ObjRecord (POI API)
Keywords: org.apache.poi.hssf.record.ObjRecord class

## org.apache.poi.hssf.record
Class ObjRecord

    java.lang.Object
      org.apache.poi.hssf.record.Record
          org.apache.poi.hssf.record.ObjRecord

public class ObjRecord
extends Record

The obj record is used to hold various graphic objects and controls.

Author:
  Glen Stampoultzis (glens at apache.org)

Field Summary
`static short` `sid`

Constructor Summary
`ObjRecord()`
`ObjRecord(short id, short size, byte[] data)` Constructs a OBJ record and sets its fields appropriately.
`ObjRecord(short id, short size, byte[] data, int offset)` Constructs a obj record and sets its fields appropriately.

Method Summary
`void` `addSubRecord(int index, java.lang.Object element)`
`boolean` `addSubRecord(java.lang.Object o)`
`void` `clearSubRecords()`
`java.lang.Object` `clone()`
`protected void` `fillFields(byte[] data, short size, int offset)` called by the constructor, should set class level fields.
`int` `getRecordSize()` Size of record (excluding 4 byte header)
`short` `getSid()` return the non static version of the id for this record.
`java.util.List` `getSubRecords()`
`int` `serialize(int offset, byte[] data)` called by the class that is responsible for writing this sucker.
`java.lang.String` `toString()` get a string representation of the record (for biffview/debugging)
`protected void` `validateSid(short id)` Checks the sid matches the expected side for this record

Methods inherited from class org.apache.poi.hssf.record.Record
`fillFields, isInValueSection, isValue, processContinueRecord, serialize`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### sid

    public static final short sid

See Also:
  Constant Field Values

Constructor Detail

### ObjRecord

    public ObjRecord()

### ObjRecord

    public ObjRecord(short id,
                     short size,
                     byte[] data)

  Constructs a OBJ record and sets its fields appropriately.

Parameters:
  `id` - id must be 0x5D or an exception will be throw upon validation
  `size` - size the size of the data area of the record
  `data` - data of the record (should not contain sid/len)

### ObjRecord

    public ObjRecord(short id,
                     short size,
                     byte[] data,
                     int offset)

  Constructs a obj record and sets its fields appropriately.

Parameters:
  `id` - id must be 0x5D or an exception will be throw upon validation
  `size` - size the size of the data area of the record
  `data` - data of the record (should not contain sid/len)
  `offset` - of the record's data

Method Detail

### validateSid

    protected void validateSid(short id)

  Checks the sid matches the expected side for this record

  Specified by:
    `validateSid` in class `Record`
  Parameters:
    `id` - the expected sid.

### fillFields

    protected void fillFields(byte[] data,
                              short size,
                              int offset)

  Description copied from class: `Record`
  called by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.

  Specified by:
    `fillFields` in class `Record`
  Parameters:
    `data` - raw data
    `size` - size of data
    `offset` - of the record's data (provided a big array of the file)

### toString

    public java.lang.String toString()

  Description copied from class: `Record`
  get a string representation of the record (for biffview/debugging)

  Overrides:
    `toString` in class `Record`

### serialize

    public int serialize(int offset,
                         byte[] data)

  Description copied from class: `Record`
  called by the class that is responsible for writing this sucker. Subclasses should implement this so that their data is passed back in a byte array.

  Specified by:
    `serialize` in class `Record`
  Parameters:
    `offset` - to begin writing at
    `data` - byte array containing instance data
  Returns:
    number of bytes written

### getRecordSize

    public int getRecordSize()

  Size of record (excluding 4 byte header)

  Overrides:
    `getRecordSize` in class `Record`

### getSid

    public short getSid()

  Description copied from class: `Record`
  return the non static version of the id for this record.

  Specified by:
    `getSid` in class `Record`

### getSubRecords

    public java.util.List getSubRecords()

### clearSubRecords

    public void clearSubRecords()

### addSubRecord

    public void addSubRecord(int index,
                             java.lang.Object element)

### addSubRecord

    public boolean addSubRecord(java.lang.Object o)

### clone

    public java.lang.Object clone()

  Overrides:
    `clone` in class `Record`

Copyright © 2003 Apache Software Foundation.