SavedByTablepublic class SavedByTable extends Object String table containing the history of the last few revisions ("saves") of the document.
Read-only for the time being. |
Fields Summary |
---|
private short | unknownValueA value that I don't know what it does, but is maintained for accuracy. | private SavedByEntry[] | entriesArray of entries. |
Constructors Summary |
---|
public SavedByTable(byte[] tableStream, int offset, int size)Constructor to read the table from the table stream.
// Read the value that I don't know what it does. :-)
unknownValue = LittleEndian.getShort(tableStream, offset);
offset += 2;
// The stored int is the number of strings, and there are two strings per entry.
int numEntries = LittleEndian.getInt(tableStream, offset) / 2;
offset += 4;
entries = new SavedByEntry[numEntries];
for (int i = 0; i < numEntries; i++)
{
int len = LittleEndian.getShort(tableStream, offset);
offset += 2;
String userName = StringUtil.getFromUnicodeLE(tableStream, offset, len);
offset += len * 2;
len = LittleEndian.getShort(tableStream, offset);
offset += 2;
String saveLocation = StringUtil.getFromUnicodeLE(tableStream, offset, len);
offset += len * 2;
entries[i] = new SavedByEntry(userName, saveLocation);
}
|
Methods Summary |
---|
public java.util.List | getEntries()Gets the entries. The returned list cannot be modified.
return Collections.unmodifiableList(Arrays.asList(entries));
| private void | writeStringValue(org.apache.poi.hwpf.model.io.HWPFOutputStream tableStream, java.lang.String value)
byte[] buf = new byte[value.length() * 2 + 2];
LittleEndian.putShort(buf, 0, (short) value.length());
StringUtil.putUnicodeLE(value, buf, 2);
tableStream.write(buf);
| public void | writeTo(org.apache.poi.hwpf.model.io.HWPFOutputStream tableStream)Writes this table to the table stream.
byte[] header = new byte[6];
LittleEndian.putShort(header, 0, unknownValue);
LittleEndian.putInt(header, 2, entries.length * 2);
tableStream.write(header);
for (int i = 0; i < entries.length; i++)
{
writeStringValue(tableStream, entries[i].getUserName());
writeStringValue(tableStream, entries[i].getSaveLocation());
}
|
|