Class RepositoryData


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

      Fields 
      Modifier and Type Field Description
      static RepositoryData EMPTY
      An instance initialized for an empty repository.
      static long EMPTY_REPO_GEN
      The generation value indicating the repository has no index generational files.
    • Constructor Summary

      Constructors 
      Constructor Description
      RepositoryData​(long genId, java.util.Map<java.lang.String,​SnapshotId> snapshotIds, java.util.Map<java.lang.String,​SnapshotState> snapshotStates, java.util.Map<IndexId,​java.util.Set<SnapshotId>> indexSnapshots)  
    • 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.
    • Constructor Detail

      • RepositoryData

        public RepositoryData​(long genId,
                              java.util.Map<java.lang.String,​SnapshotId> snapshotIds,
                              java.util.Map<java.lang.String,​SnapshotState> snapshotStates,
                              java.util.Map<IndexId,​java.util.Set<SnapshotId>> indexSnapshots)
    • Method Detail

      • getGenId

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

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

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

        public RepositoryData addSnapshot​(SnapshotId snapshotId,
                                          SnapshotState snapshotState,
                                          java.util.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 java.util.Set<SnapshotId> getSnapshots​(IndexId indexId)
        Returns an immutable collection of the snapshot ids for the snapshots that contain the given index.
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public IndexId resolveIndexId​(java.lang.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 java.util.List<IndexId> resolveIndices​(java.util.List<java.lang.String> indices)
        Resolve the given index names to index ids.
      • resolveNewIndices

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

        public XContentBuilder snapshotsToXContent​(XContentBuilder builder)
                                            throws java.io.IOException
        Writes the snapshots metadata and the related indices metadata to x-content.
        Throws:
        java.io.IOException
      • snapshotsFromXContent

        public static RepositoryData snapshotsFromXContent​(XContentParser parser,
                                                           long genId)
                                                    throws java.io.IOException
        Reads an instance of RepositoryData from x-content, loading the snapshots and indices metadata.
        Throws:
        java.io.IOException