Class PersistPtrHolder

All Implemented Interfaces:
GenericRecord, PositionDependentRecord

public final class PersistPtrHolder extends PositionDependentRecordAtom
General holder for PersistPtrFullBlock and PersistPtrIncrementalBlock records. We need to handle them specially, since we have to go around updating UserEditAtoms if they shuffle about on disk These hold references to where slides "live". If the position of a slide moves, then we have update all of these. If we come up with a new version of a slide, then we have to add one of these to the end of the chain (via CurrentUserAtom and UserEditAtom) pointing to the new slide location
  • Method Details

    • getRecordType

      public long getRecordType()
      Return the value we were given at creation, be it 6001 or 6002
      Specified by:
      getRecordType in class Record
    • getKnownSlideIDs

      public int[] getKnownSlideIDs()
      Get the list of slides that this PersistPtrHolder knows about. (They will be the keys in the map for looking up the positions of these slides)
    • getSlideLocationsLookup

      public Map<Integer,Integer> getSlideLocationsLookup()
      Get the lookup from slide numbers to byte offsets, for the slides known about by this PersistPtrHolder.
    • clear

      public void clear()
      remove all slide references Convenience method provided, for easier reviewing of invocations
    • addSlideLookup

      public void addSlideLookup(int slideID, int posOnDisk)
      Adds a new slide, notes or similar, to be looked up by this.
    • updateOtherRecordReferences

      public void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup)
      At write-out time, update the references to the sheets to their new positions
      Specified by:
      updateOtherRecordReferences in interface PositionDependentRecord
      Specified by:
      updateOtherRecordReferences in class PositionDependentRecordAtom
    • writeOut

      public void writeOut(OutputStream out) throws IOException
      Write the contents of the record back, so it can be written to disk
      Specified by:
      writeOut in class Record
      Throws:
      IOException
    • getGenericProperties

      public Map<String,Supplier<?>> getGenericProperties()