Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.uima.cas
Interface FSIterator

All Superinterfaces:
  Iterator

    public interface FSIterator

extends Iterator

Iterator over feature structures.

This iterator interface extends `java.util.Iterator`, and supports the standard `hasNext` and `next` methods. If finer control, including reverse iteration, is needed, see below.

Note: do not use the APIs described below *together* with the standard Java iterator methods `next()` and `hasNext()`. On any given iterator, use either the one or the other, but not both together. Otherwise, `next/hasNext` may exhibit incorrect behavior.

The `FSIterator` interface introduces the methods `get()`, `moveToNext()`, `moveToPrevious()` methods. With these methods, retrieving the current element (`get`) is a separate operation from moving the iterator (`moveToNext` and `moveToPrevious`. This makes the user's code less compact, but allows for finer control.

Specifically the `get` method is defined to return the same element that a call to `next()` would return, but does not advance the iterator.

Implementations of this interface are not required to be fail-fast. That is, if the iterator's collection is modified, the effects on the iterator are in general undefined. Some collections may handle this more gracefully than others, but in general, concurrent modification of the collection you're iterating over is a bad idea.

If the iterator is moved past the boundaries of the collection, the behavior of subsequent calls to `moveToNext()` or `moveToPrevious()` is undefined. For example, if a previously valid iterator is invalidated by a call to `moveToNext()`, a subsequent call to `moveToPrevious()` is not guaranteed to set the iterator back to the last element in the collection. Always use `moveToLast()` in such cases.

Method Summary
`FSIterator` | `copy()` Copy this iterator.
`FeatureStructure` | `get()` Get the structure the iterator is pointing at.
`boolean` | `isValid()` Check if this iterator is valid.
`void` | `moveTo(FeatureStructure fs)` Move the iterator to the first features structure that is equal to `fs`.
`void` | `moveToFirst()` Move the iterator to the first element.
`void` | `moveToLast()` Move the iterator to the last element.
`void` | `moveToNext()` Advance the iterator.
`void` | `moveToPrevious()` Move the iterator one element back.

Methods inherited from interface java.util.Iterator
`hasNext, next, remove`

Method Detail

### isValid

    boolean isValid()

  Check if this iterator is valid.

  Returns:
    `true` iff the iterator is valid.

### get

    FeatureStructure get()
                         throws NoSuchElementException

  Get the structure the iterator is pointing at.

  Returns:
    The structure the iterator is pointing at.
  Throws:
    `NoSuchElementException` - If the iterator is not valid.

### moveToNext

    void moveToNext()

  Advance the iterator. This may invalidate the iterator.

### moveToPrevious

    void moveToPrevious()

  Move the iterator one element back. This may invalidate the iterator.

### moveToFirst

    void moveToFirst()

  Move the iterator to the first element. The iterator will be valid iff the underlying collection is non-empty.

### moveToLast

    void moveToLast()

  Move the iterator to the last element. The iterator will be valid iff the underlying collection is non-empty.

### moveTo

    void moveTo(FeatureStructure fs)

  Move the iterator to the first features structure that is equal to `fs`. If no such feature structure exists in the underlying collection, set the iterator to the "insertion point" for `fs`, i.e., to a point where the current feature structure is greater than `fs`, and the previous one is less than `fs`.

  Parameters:
    `fs` - The feature structure the iterator should be set to.

### copy

    FSIterator copy()

  Copy this iterator.

  Returns:
    A copy of this iterator, pointing at the same element.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008 The Apache Software Foundation. All Rights Reserved.