org.apache.poi.hslf.record

## Class PersistPtrHolder

- java.lang.Object
- - org.apache.poi.hslf.record.Record
  - - org.apache.poi.hslf.record.RecordAtom
    - - org.apache.poi.hslf.record.PositionDependentRecordAtom
      - - org.apache.poi.hslf.record.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

- - ### Field Summary

    - ### Fields inherited from class org.apache.poi.hslf.record.Record

      `logger`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PersistPtrHolder(byte[] source, int start, int len)` Create a new holder for a PersistPtr record

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addSlideLookup(int slideID, int posOnDisk)` Adds a new slide, notes or similar, to be looked up by this.
    `void` | `clear()` remove all slide references Convenience method provided, for easier reviewing of invocations
    `java.util.Map<java.lang.String,java.util.function.Supplier<?>>` | `getGenericProperties()`
    `int[]` | `getKnownSlideIDs()` Get the list of slides that this PersistPtrHolder knows about.
    `long` | `getRecordType()` Return the value we were given at creation, be it 6001 or 6002
    `java.util.Map<java.lang.Integer,java.lang.Integer>` | `getSlideLocationsLookup()` Get the lookup from slide numbers to byte offsets, for the slides known about by this PersistPtrHolder.
    `void` | `updateOtherRecordReferences(java.util.Map<java.lang.Integer,java.lang.Integer> oldToNewReferencesLookup)` At write-out time, update the references to the sheets to their new positions
    `void` | `writeOut(java.io.OutputStream out)` Write the contents of the record back, so it can be written to disk

    - ### Methods inherited from class org.apache.poi.hslf.record.PositionDependentRecordAtom

      `getLastOnDiskOffset, setLastOnDiskOffset`

    - ### Methods inherited from class org.apache.poi.hslf.record.RecordAtom

      `getChildRecords, isAnAtom`

    - ### Methods inherited from class org.apache.poi.hslf.record.Record

      `buildRecordAtOffset, createRecordForType, findChildRecords, getGenericChildren, getGenericRecordType, writeLittleEndian, writeLittleEndian`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PersistPtrHolder

          protected PersistPtrHolder(byte[] source,
                                     int start,
                                     int len)

      Create a new holder for a PersistPtr record

  - ### Method Detail

    - #### 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 java.util.Map<java.lang.Integer,java.lang.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(java.util.Map<java.lang.Integer,java.lang.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(java.io.OutputStream out)
                        throws java.io.IOException

      Write the contents of the record back, so it can be written to disk
      Specified by:
        `writeOut` in class `Record`
      Throws:
        `java.io.IOException`

    - #### getGenericProperties

          public java.util.Map<java.lang.String,java.util.function.Supplier<?>> getGenericProperties()

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.