Package org.apache.lucene.util.automaton

# Class FiniteStringsIterator

java.lang.Object
org.apache.lucene.util.automaton.FiniteStringsIterator

Direct Known Subclasses:
  `LimitedFiniteStringsIterator`

public class FiniteStringsIterator extends Object
Iterates all accepted strings.

If the `Automaton` has cycles then this iterator may throw an `IllegalArgumentException`, but this is not guaranteed!

Be aware that the iteration order is implementation dependent and may change across releases.

If the automaton is not determinized then it's possible this iterator will return duplicates.

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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FiniteStringsIterator(Automaton a)`
  Constructor.
  `FiniteStringsIterator(Automaton a, int startState, int endState)`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `IntsRef`
  `next()`
  Generate next finite string.

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

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

- ## Constructor Details

  - ### FiniteStringsIterator

    public FiniteStringsIterator(Automaton a)
    Constructor.
    Parameters:
      `a` - Automaton to create finite string from.

  - ### FiniteStringsIterator

    public FiniteStringsIterator(Automaton a, int startState, int endState)
    Constructor.
    Parameters:
      `a` - Automaton to create finite string from.
      `startState` - The starting state for each path.
      `endState` - The state where each path should stop or -1 if only accepted states should be final.

- ## Method Details

  - ### next

    public IntsRef next()
    Generate next finite string. The return value is just valid until the next call of this method!
    Returns:
      Finite string or null, if no more finite strings are available.