public final class SSTRecord extends ContinuableRecord
This holds all the strings for LabelSSTRecords.
LabelSSTRecord
,
ContinueRecord
Modifier and Type | Field and Description |
---|---|
static short |
sid |
Constructor and Description |
---|
SSTRecord() |
SSTRecord(RecordInputStream in)
Fill the fields from the data
|
SSTRecord(SSTRecord other) |
Modifier and Type | Method and Description |
---|---|
int |
addString(UnicodeString string)
Add a string.
|
int |
calcExtSSTRecordSize()
Calculates the size in bytes of the EXTSST record as it would be if the
record was serialized.
|
SSTRecord |
copy() |
ExtSSTRecord |
createExtSSTRecord(int sstOffset)
Creates an extended string record based on the current contents of
the current SST record.
|
java.util.Map<java.lang.String,java.util.function.Supplier<?>> |
getGenericProperties() |
HSSFRecordTypes |
getGenericRecordType() |
int |
getNumStrings() |
int |
getNumUniqueStrings() |
short |
getSid()
return the non static version of the id for this record.
|
UnicodeString |
getString(int id)
Get a particular string by its index
|
protected void |
serialize(ContinuableRecordOutput out)
Serializes this record's content to the supplied data output.
|
getRecordSize, serialize
cloneViaReserialise, serialize, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getGenericChildren
public static final short sid
public SSTRecord()
public SSTRecord(SSTRecord other)
public SSTRecord(RecordInputStream in)
The data consists of sets of string data. This string data is arranged as follows:
short string_length; // length of string data
byte string_flag; // flag specifying special string
// handling
short run_count; // optional count of formatting runs
int extend_length; // optional extension length
char[] string_data; // string data, can be byte[] or
// short[] (length of array is
// string_length)
int[] formatting_runs; // optional formatting runs (length of
// array is run_count)
byte[] extension; // optional extension (length of array
// is extend_length)
The string_flag is bit mapped as follows:
Bit number | Meaning if 0 | Meaning if 1 |
---|---|---|
0 | string_data is byte[] | string_data is short[] |
1 | Should always be 0 | string_flag is defective |
2 | extension is not included | extension is included |
3 | formatting run data is not included | formatting run data is included |
4 | Should always be 0 | string_flag is defective |
5 | Should always be 0 | string_flag is defective |
6 | Should always be 0 | string_flag is defective |
7 | Should always be 0 | string_flag is defective |
We can handle eating the overhead associated with bits 2 or 3 (or both) being set, but we have no idea what to do with the associated data. The UnicodeString class can handle the byte[] vs short[] nature of the actual string data
in
- the RecordInputStream to read the record frompublic int addString(UnicodeString string)
string
- string to be addedpublic int getNumStrings()
public int getNumUniqueStrings()
public UnicodeString getString(int id)
id
- index into the array of stringspublic short getSid()
Record
protected void serialize(ContinuableRecordOutput out)
ContinuableRecord
The standard BIFF header (ushort sid, ushort size) has been handled by the superclass, so
only BIFF data should be written by this method. Simple data types can be written with the
standard LittleEndianOutput
methods. Methods from ContinuableRecordOutput
can be used to serialize strings (with ContinueRecord
s being written as required).
If necessary, implementors can explicitly start ContinueRecord
s (regardless of the
amount of remaining space).
serialize
in class ContinuableRecord
out
- a data output streampublic ExtSSTRecord createExtSSTRecord(int sstOffset)
NOTE: THIS FUNCTION MUST ONLY BE CALLED AFTER THE SST RECORD HAS BEEN SERIALIZED.
sstOffset
- The offset in the stream to the start of the
SST record.public int calcExtSSTRecordSize()
public SSTRecord copy()
copy
in interface Duplicatable
copy
in class Record
public HSSFRecordTypes getGenericRecordType()
getGenericRecordType
in interface GenericRecord
getGenericRecordType
in class Record
public java.util.Map<java.lang.String,java.util.function.Supplier<?>> getGenericProperties()
Copyright 2022 The Apache Software Foundation or its licensors, as applicable.