org.apache.lucene.index

## Class SegmentInfos.FindSegmentsFile

- java.lang.Object
- - org.apache.lucene.index.SegmentInfos.FindSegmentsFile

Enclosing class:
  SegmentInfos

    public abstract static class SegmentInfos.FindSegmentsFile
    extends Object

Utility class for executing code that needs to do something with the current segments file. This is necessary with lock-less commits because from the time you locate the current segments file name, until you actually open it, read its contents, or check modified time, etc., it could have been deleted due to a writer commit finishing.

### Constructor Summary

Constructors
Constructor and Description
`SegmentInfos.FindSegmentsFile(Directory directory)` Sole constructor.

### Method Summary

Methods
`protected abstract Object` `doBody(String segmentFileName)` Subclass must implement this.
`Object` `run()` Locate the most recent `segments` file and run `doBody(java.lang.String)` on it.
`Object` `run(IndexCommit commit)` Run `doBody(java.lang.String)` on the provided commit.

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

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

### Constructor Detail

#### SegmentInfos.FindSegmentsFile

    public SegmentInfos.FindSegmentsFile(Directory directory)

Sole constructor.

### Method Detail

#### run

    public Object run()
               throws IOException

Locate the most recent `segments` file and run `doBody(java.lang.String)` on it.

Throws:
  `IOException`

#### run

    public Object run(IndexCommit commit)
               throws IOException

Run `doBody(java.lang.String)` on the provided commit.

Throws:
  `IOException`

#### doBody

    protected abstract Object doBody(String segmentFileName)
                              throws IOException

Subclass must implement this. The assumption is an IOException will be thrown if something goes wrong during the processing that could have been caused by a writer committing.

Throws:
  `IOException`