org.apache.lucene.replicator

## Class IndexAndTaxonomyRevision

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

All Implemented Interfaces:
  Comparable<Revision>, Revision

    public class IndexAndTaxonomyRevision
    extends Object
    implements Revision

A `Revision` of a single index and taxonomy index files which comprises the list of files from both indexes. This revision should be used whenever a pair of search and taxonomy indexes need to be replicated together to guarantee consistency of both on the replicating (client) side.

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

### Nested Class Summary

Nested Classes
`static class` `IndexAndTaxonomyRevision.SnapshotDirectoryTaxonomyWriter` A `DirectoryTaxonomyWriter` which sets the underlying `IndexWriter`'s `IndexDeletionPolicy` to `SnapshotDeletionPolicy`.

### Field Summary

Fields
`static String` `INDEX_SOURCE`
`static String` `TAXONOMY_SOURCE`

### Constructor Summary

Constructors
Constructor and Description
`IndexAndTaxonomyRevision(IndexWriter indexWriter, IndexAndTaxonomyRevision.SnapshotDirectoryTaxonomyWriter taxoWriter)` 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 indexCommit, IndexCommit taxoCommit)` Returns a singleton map of the revision files from the given `IndexCommit`.
`static String` `revisionVersion(IndexCommit indexCommit, IndexCommit taxoCommit)` Returns a String representation of a revision's version from the given `IndexCommit`s of the search and taxonomy indexes.
`String` `toString()`

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

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

### Field Detail

#### INDEX_SOURCE

    public static final String INDEX_SOURCE

See Also:
  Constant Field Values

#### TAXONOMY_SOURCE

    public static final String TAXONOMY_SOURCE

See Also:
  Constant Field Values

### Constructor Detail

#### IndexAndTaxonomyRevision

    public IndexAndTaxonomyRevision(IndexWriter indexWriter,
                                    IndexAndTaxonomyRevision.SnapshotDirectoryTaxonomyWriter taxoWriter)
                             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 indexCommit,
                                                               IndexCommit taxoCommit)
                                                        throws IOException

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

Throws:
  `IOException`

#### revisionVersion

    public static String revisionVersion(IndexCommit indexCommit,
                                         IndexCommit taxoCommit)

Returns a String representation of a revision's version from the given `IndexCommit`s of the search and taxonomy indexes.

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