SlidePersistAtompublic class SlidePersistAtom extends RecordAtom A SlidePersist Atom (type 1011). Holds information on the text of a
given slide, which are stored in the same SlideListWithText |
Fields Summary |
---|
private byte[] | _header | private static long | _type | private int | refIDSlide reference ID. Should correspond to the PersistPtr
"sheet ID" of the matching slide/notes record | private boolean | hasShapesOtherThanPlaceholders | private int | numPlaceholderTextsNumber of placeholder texts that will follow in the SlideListWithText | private int | slideIdentifierThe internal identifier (256+), which is used to tie slides
and notes together | private byte[] | reservedFieldsReserved fields. Who knows what they do |
Constructors Summary |
---|
protected SlidePersistAtom(byte[] source, int start, int len)For the SlidePersist Atom
// Sanity Checking
if(len < 8) { len = 8; }
// Get the header
_header = new byte[8];
System.arraycopy(source,start,_header,0,8);
// Grab the reference ID
refID = (int)LittleEndian.getInt(source,start+8);
// Next up is a set of flags, but only bit 3 is used!
int flags = (int)LittleEndian.getInt(source,start+12);
if(flags == 4) {
hasShapesOtherThanPlaceholders = true;
} else {
hasShapesOtherThanPlaceholders = false;
}
// Now the number of Placeholder Texts
numPlaceholderTexts = (int)LittleEndian.getInt(source,start+16);
// Last useful one is the unique slide identifier
slideIdentifier = (int)LittleEndian.getInt(source,start+20);
// Finally you have typically 4 or 8 bytes of reserved fields,
// all zero running from 24 bytes in to the end
reservedFields = new byte[len-24];
System.arraycopy(source,start+24,reservedFields,0,reservedFields.length);
| public SlidePersistAtom()Create a new SlidePersistAtom, for use with a new Slide
_header = new byte[8];
LittleEndian.putUShort(_header, 0, 0);
LittleEndian.putUShort(_header, 2, (int)_type);
LittleEndian.putInt(_header, 4, 20);
hasShapesOtherThanPlaceholders = true;
reservedFields = new byte[4];
|
Methods Summary |
---|
public boolean | getHasShapesOtherThanPlaceholders() return hasShapesOtherThanPlaceholders;
| public int | getNumPlaceholderTexts() return numPlaceholderTexts;
| public long | getRecordType()We are of type 1011 return _type;
| public int | getRefID()
return refID;
| public int | getSlideIdentifier() return slideIdentifier;
| public void | setRefID(int id)
refID = id;
| public void | setSlideIdentifier(int id)
slideIdentifier = id;
| public void | writeOut(java.io.OutputStream out)Write the contents of the record back, so it can be written
to disk
// Header - size or type unchanged
out.write(_header);
// Compute the flags part - only bit 3 is used
int flags = 0;
if(hasShapesOtherThanPlaceholders) {
flags = 4;
}
// Write out our fields
writeLittleEndian(refID,out);
writeLittleEndian(flags,out);
writeLittleEndian(numPlaceholderTexts,out);
writeLittleEndian(slideIdentifier,out);
out.write(reservedFields);
|
|