Class RepositoryData


  • public final class RepositoryData
    extends Object
    A class that represents the data in a repository, as captured in the repository's index blob.
    • Field Detail

      • EMPTY_REPO_GEN

        public static final long EMPTY_REPO_GEN
        The generation value indicating the repository has no index generational files.
        See Also:
        Constant Field Values
      • EMPTY

        public static final RepositoryData EMPTY
        An instance initialized for an empty repository.
    • Method Detail

      • getGenId

        public long getGenId()
        Gets the generational index file id from which this instance was read.
      • getSnapshotIds

        public Collection<SnapshotId> getSnapshotIds()
        Returns an unmodifiable collection of the snapshot ids.
      • getIndices

        public Map<String,​IndexId> getIndices()
        Returns an unmodifiable map of the index names to IndexId in the repository.
      • indicesToUpdateAfterRemovingSnapshot

        public List<IndexId> indicesToUpdateAfterRemovingSnapshot​(SnapshotId snapshotId)
        Returns the list of IndexId that have their snapshots updated but not removed (because they are still referenced by other snapshots) after removing the given snapshot from the repository.
        Parameters:
        snapshotId - SnapshotId to remove
        Returns:
        List of indices that are changed but not removed
      • addSnapshot

        public RepositoryData addSnapshot​(SnapshotId snapshotId,
                                          SnapshotState snapshotState,
                                          List<IndexId> snapshottedIndices)
        Add a snapshot and its indices to the repository; returns a new instance. If the snapshot already exists in the repository data, this method throws an IllegalArgumentException.
      • withGenId

        public RepositoryData withGenId​(long newGeneration)
        Create a new instance with the given generation and all other fields equal to this instance.
        Parameters:
        newGeneration - New Generation
        Returns:
        New instance
      • removeSnapshot

        public RepositoryData removeSnapshot​(SnapshotId snapshotId)
        Remove a snapshot and remove any indices that no longer exist in the repository due to the deletion of the snapshot.
      • getSnapshots

        public Set<SnapshotId> getSnapshots​(IndexId indexId)
        Returns an immutable collection of the snapshot ids for the snapshots that contain the given index.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • resolveIndexId

        public IndexId resolveIndexId​(String indexName)
        Resolve the index name to the index id specific to the repository, throwing an exception if the index could not be resolved.
      • resolveIndices

        public List<IndexId> resolveIndices​(List<String> indices)
        Resolve the given index names to index ids.
      • resolveNewIndices

        public List<IndexId> resolveNewIndices​(List<String> indicesToResolve)
        Resolve the given index names to index ids, creating new index ids for new indices in the repository.