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
`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`