Methods Summary |
---|
public java.lang.Object | clone()
HeaderRecord rec = new HeaderRecord();
rec.field_1_header_len = field_1_header_len;
rec.field_2_reserved = field_2_reserved;
rec.field_3_unicode_flag = field_3_unicode_flag;
rec.field_4_header = field_4_header;
return rec;
|
protected void | fillFields(org.apache.poi.hssf.record.RecordInputStream in)
if (in.remaining() > 0)
{
field_1_header_len = in.readByte();
/** These two fields are a bit odd. They are not documented*/
field_2_reserved = in.readByte();
field_3_unicode_flag = in.readByte(); // unicode
if(isMultibyte())
{
field_4_header = in.readUnicodeLEString(LittleEndian.ubyteToInt( field_1_header_len));
}
else
{
field_4_header = in.readCompressedUnicode(LittleEndian.ubyteToInt( field_1_header_len));
}
}
|
public java.lang.String | getHeader()get the header string
return field_4_header;
|
public short | getHeaderLength()get the length of the header string
return (short)(0xFF & field_1_header_len); // [Shawn] Fixed needing unsigned byte
|
public int | getRecordSize()
int retval = 4;
if (getHeaderLength() != 0)
{
retval+=3; // [Shawn] Fixed for two null bytes in the length
}
return (isMultibyte() ?
(retval + getHeaderLength()*2) : (retval + getHeaderLength()));
|
public short | getSid()
return sid;
|
public boolean | isMultibyte()see the unicode flag
return ((field_3_unicode_flag & 0xFF) == 1);
|
public int | serialize(int offset, byte[] data)
int len = 4;
if (getHeaderLength() != 0)
{
len+=3; // [Shawn] Fixed for two null bytes in the length
}
short bytelen = (short)(isMultibyte() ?
getHeaderLength()*2 : getHeaderLength() );
LittleEndian.putShort(data, 0 + offset, sid);
LittleEndian.putShort(data, 2 + offset,
( short ) ((len - 4) + bytelen));
if (getHeaderLength() > 0)
{
data[ 4 + offset ] = (byte)getHeaderLength();
data[ 6 + offset ] = field_3_unicode_flag;
if(isMultibyte())
{
StringUtil.putUnicodeLE(getHeader(), data, 7 + offset);
}
else
{
StringUtil.putCompressedUnicode(getHeader(), data, 7 + offset); // [Shawn] Place the string in the correct offset
}
}
return getRecordSize();
|
public void | setHeader(java.lang.String header)set the header string
field_4_header = header;
field_3_unicode_flag =
(byte) (StringUtil.hasMultibyte(field_4_header) ? 1 : 0);
|
public void | setHeaderLength(byte len)set the length of the header string
field_1_header_len = len;
|
public java.lang.String | toString()
StringBuffer buffer = new StringBuffer();
buffer.append("[HEADER]\n");
buffer.append(" .length = ").append(getHeaderLength())
.append("\n");
buffer.append(" .header = ").append(getHeader())
.append("\n");
buffer.append("[/HEADER]\n");
return buffer.toString();
|
protected void | validateSid(short id)
if (id != sid)
{
throw new RecordFormatException("NOT A HEADERRECORD");
}
|