Class Automata


  • public final class Automata
    extends Object
    Construction of basic automata.
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Method Detail

      • makeEmpty

        public static Automaton makeEmpty()
        Returns a new (deterministic) automaton with the empty language.
      • makeEmptyString

        public static Automaton makeEmptyString()
        Returns a new (deterministic) automaton that accepts only the empty string.
      • makeAnyString

        public static Automaton makeAnyString()
        Returns a new (deterministic) automaton that accepts all strings.
      • makeAnyBinary

        public static Automaton makeAnyBinary()
        Returns a new (deterministic) automaton that accepts all binary terms.
      • makeAnyChar

        public static Automaton makeAnyChar()
        Returns a new (deterministic) automaton that accepts any single codepoint.
      • appendAnyChar

        public static int appendAnyChar​(Automaton a,
                                        int state)
        Accept any single character starting from the specified state, returning the new state
      • makeChar

        public static Automaton makeChar​(int c)
        Returns a new (deterministic) automaton that accepts a single codepoint of the given value.
      • appendChar

        public static int appendChar​(Automaton a,
                                     int state,
                                     int c)
        Appends the specified character to the specified state, returning a new state.
      • makeCharRange

        public static Automaton makeCharRange​(int min,
                                              int max)
        Returns a new (deterministic) automaton that accepts a single codepoint whose value is in the given interval (including both end points).
      • makeBinaryInterval

        public static Automaton makeBinaryInterval​(BytesRef min,
                                                   boolean minInclusive,
                                                   BytesRef max,
                                                   boolean maxInclusive)
        Creates a new deterministic, minimal automaton accepting all binary terms in the specified interval. Note that unlike makeDecimalInterval(int, int, int), the returned automaton is infinite, because terms behave like floating point numbers leading with a decimal point. However, in the special case where min == max, and both are inclusive, the automata will be finite and accept exactly one term.
      • makeDecimalInterval

        public static Automaton makeDecimalInterval​(int min,
                                                    int max,
                                                    int digits)
                                             throws IllegalArgumentException
        Returns a new automaton that accepts strings representing decimal (base 10) non-negative integers in the given interval.
        Parameters:
        min - minimal value of interval
        max - maximal value of interval (both end points are included in the interval)
        digits - if > 0, use fixed number of digits (strings must be prefixed by 0's to obtain the right length) - otherwise, the number of digits is not fixed (any number of leading 0s is accepted)
        Throws:
        IllegalArgumentException - if min > max or if numbers in the interval cannot be expressed with the given fixed number of digits
      • makeString

        public static Automaton makeString​(String s)
        Returns a new (deterministic) automaton that accepts the single given string.
      • makeBinary

        public static Automaton makeBinary​(BytesRef term)
        Returns a new (deterministic) automaton that accepts the single given binary term.
      • makeString

        public static Automaton makeString​(int[] word,
                                           int offset,
                                           int length)
        Returns a new (deterministic) automaton that accepts the single given string from the specified unicode code points.
      • makeStringUnion

        public static Automaton makeStringUnion​(Collection<BytesRef> utf8Strings)
        Returns a new (deterministic and minimal) automaton that accepts the union of the given collection of BytesRefs representing UTF-8 encoded strings.
        Parameters:
        utf8Strings - The input strings, UTF-8 encoded. The collection must be in sorted order.
        Returns:
        An Automaton accepting all input strings. The resulting automaton is codepoint based (full unicode codepoints on transitions).