Interface PositionDependentRecord

All Known Implementing Classes:
BinaryTagDataBlob, Document, DocumentEncryptionAtom, DummyPositionSensitiveRecordWithChildren, Environment, ExOleObjStg, MainMaster, Notes, PersistPtrHolder, PositionDependentRecordAtom, PositionDependentRecordContainer, SheetContainer, Slide, UserEditAtom

public interface PositionDependentRecord
Records which either care about where they are on disk, or have other records who care about where they are, will implement this interface. Normally, they'll subclass PositionDependentRecordAtom or PositionDependentRecordContainer, which will do the work of providing the setting and updating interfaces for them. This is a special (and dangerous) kind of Record. When created, they need to be pinged with their current location. When written out, they need to be given their new location, and offered the list of records which have changed their location.
Author:
Nick Burch
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Fetch our location on the disk, as of the last write out
    void
    setLastOnDiskOffset(int offset)
    Update the Record's idea of where on disk it lives, after a write out.
    void
    updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup)
    Offer the record the list of records that have changed their location as part of the writeout.
  • Method Details

    • getLastOnDiskOffset

      int getLastOnDiskOffset()
      Fetch our location on the disk, as of the last write out
    • setLastOnDiskOffset

      void setLastOnDiskOffset(int offset)
      Update the Record's idea of where on disk it lives, after a write out. Use with care...
    • updateOtherRecordReferences

      void updateOtherRecordReferences(Map<Integer,Integer> oldToNewReferencesLookup)
      Offer the record the list of records that have changed their location as part of the writeout.