org.apache.lucene.replicator

## Class IndexRevision

- java.lang.Object
- - org.apache.lucene.replicator.IndexRevision

- All Implemented Interfaces:
    Comparable<Revision>, Revision

      public class IndexRevision
      extends Object
      implements Revision

  A `Revision` of a single index files which comprises the list of files that are part of the current `IndexCommit`. To ensure the files are not deleted by `IndexWriter` for as long as this revision stays alive (i.e. until `release()`), the current commit point is snapshotted, using `SnapshotDeletionPolicy` (this means that the given writer's `config` should return `SnapshotDeletionPolicy`).

  When this revision is `released`, it releases the obtained snapshot as well as calls `IndexWriter.deleteUnusedFiles()` so that the snapshotted files are deleted (if they are no longer needed).

  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IndexRevision(IndexWriter writer)` Constructor over the given `IndexWriter`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `compareTo(Revision o)`
    `int` | `compareTo(String version)` Compares the revision to the given version string.
    `Map<String,List<RevisionFile>>` | `getSourceFiles()` Returns the files that comprise this revision, as a mapping from a source to a list of files.
    `String` | `getVersion()` Returns a string representation of the version of this revision.
    `InputStream` | `open(String source, String fileName)` Returns an `IndexInput` for the given fileName and source.
    `void` | `release()` Called when this revision can be safely released, i.e.
    `static Map<String,List<RevisionFile>>` | `revisionFiles(IndexCommit commit)` Returns a singleton map of the revision files from the given `IndexCommit`.
    `static String` | `revisionVersion(IndexCommit commit)` Returns a String representation of a revision's version from the given `IndexCommit`.
    `String` | `toString()`

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

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

- - ### Constructor Detail

    - #### IndexRevision

          public IndexRevision(IndexWriter writer)
                        throws IOException

      Constructor over the given `IndexWriter`. Uses the last `IndexCommit` found in the `Directory` managed by the given writer.
      Throws:
        `IOException`

  - ### Method Detail

    - #### revisionFiles

          public static Map<String,List<RevisionFile>> revisionFiles(IndexCommit commit)
                                                              throws IOException

      Returns a singleton map of the revision files from the given `IndexCommit`.
      Throws:
        `IOException`

    - #### revisionVersion

          public static String revisionVersion(IndexCommit commit)

      Returns a String representation of a revision's version from the given `IndexCommit`.

    - #### compareTo

          public int compareTo(String version)

      Description copied from interface: `Revision`
      Compares the revision to the given version string. Behaves like `Comparable.compareTo(Object)`.
      Specified by:
        `compareTo` in interface `Revision`

    - #### compareTo

          public int compareTo(Revision o)

      Specified by:
        `compareTo` in interface `Comparable<Revision>`

    - #### getVersion

          public String getVersion()

      Description copied from interface: `Revision`
      Returns a string representation of the version of this revision. The version is used by `Revision.compareTo(String)` as well as to serialize/deserialize revision information. Therefore it must be self descriptive as well as be able to identify one revision from another.
      Specified by:
        `getVersion` in interface `Revision`

    - #### getSourceFiles

          public Map<String,List<RevisionFile>> getSourceFiles()

      Description copied from interface: `Revision`
      Returns the files that comprise this revision, as a mapping from a source to a list of files.
      Specified by:
        `getSourceFiles` in interface `Revision`

    - #### open

          public InputStream open(String source,
                                  String fileName)
                           throws IOException

      Description copied from interface: `Revision`
      Returns an `IndexInput` for the given fileName and source. It is the caller's responsibility to close the `IndexInput` when it has been consumed.
      Specified by:
        `open` in interface `Revision`
      Throws:
        `IOException`

    - #### release

          public void release()
                       throws IOException

      Description copied from interface: `Revision`
      Called when this revision can be safely released, i.e. where there are no more references to it.
      Specified by:
        `release` in interface `Revision`
      Throws:
        `IOException`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.