Class RunAutomaton

  • All Implemented Interfaces:
    java.io.Serializable

    public class RunAutomaton
    extends java.lang.Object
    implements java.io.Serializable
    Finite-state automaton with fast run operation.
    Author:
    Anders Møller <amoeller@cs.au.dk>
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      RunAutomaton​(Automaton a)
      Constructs a new RunAutomaton from a deterministic Automaton.
      RunAutomaton​(Automaton a, boolean tableize)
      Constructs a new RunAutomaton from a deterministic Automaton.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      char[] getCharIntervals()
      Returns array of character class interval start points.
      int getInitialState()
      Returns initial state.
      int getSize()
      Returns number of states in automaton.
      boolean isAccept​(int state)
      Returns acceptance status for given state.
      static RunAutomaton load​(java.io.InputStream stream)
      Retrieves a serialized RunAutomaton from a stream.
      static RunAutomaton load​(java.net.URL url)
      Retrieves a serialized RunAutomaton located by a URL.
      AutomatonMatcher newMatcher​(java.lang.CharSequence s)
      Creates a new automaton matcher for the given input.
      AutomatonMatcher newMatcher​(java.lang.CharSequence s, int startOffset, int endOffset)
      Creates a new automaton matcher for the given input.
      boolean run​(java.lang.String s)
      Returns true if the given string is accepted by this automaton.
      int run​(java.lang.String s, int offset)
      Returns the length of the longest accepted run of the given string starting at the given offset.
      int step​(int state, char c)
      Returns the state obtained by reading the given char from the given state.
      void store​(java.io.OutputStream stream)
      Writes this RunAutomaton to the given stream.
      java.lang.String toString()
      Returns a string representation of this automaton.
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RunAutomaton

        public RunAutomaton​(Automaton a)
        Constructs a new RunAutomaton from a deterministic Automaton. Same as RunAutomaton(a, true).
        Parameters:
        a - an automaton
      • RunAutomaton

        public RunAutomaton​(Automaton a,
                            boolean tableize)
        Constructs a new RunAutomaton from a deterministic Automaton. If the given automaton is not deterministic, it is determinized first.
        Parameters:
        a - an automaton
        tableize - if true, a transition table is created which makes the run method faster in return of a higher memory usage
    • Method Detail

      • toString

        public java.lang.String toString()
        Returns a string representation of this automaton.
        Overrides:
        toString in class java.lang.Object
      • getSize

        public int getSize()
        Returns number of states in automaton.
      • isAccept

        public boolean isAccept​(int state)
        Returns acceptance status for given state.
      • getInitialState

        public int getInitialState()
        Returns initial state.
      • getCharIntervals

        public char[] getCharIntervals()
        Returns array of character class interval start points. The array should not be modified by the caller.
      • load

        public static RunAutomaton load​(java.net.URL url)
                                 throws java.io.IOException,
                                        java.io.OptionalDataException,
                                        java.lang.ClassCastException,
                                        java.lang.ClassNotFoundException,
                                        java.io.InvalidClassException
        Retrieves a serialized RunAutomaton located by a URL.
        Parameters:
        url - URL of serialized automaton
        Throws:
        java.io.IOException - if input/output related exception occurs
        java.io.OptionalDataException - if the data is not a serialized object
        java.io.InvalidClassException - if the class serial number does not match
        java.lang.ClassCastException - if the data is not a serialized RunAutomaton
        java.lang.ClassNotFoundException - if the class of the serialized object cannot be found
      • load

        public static RunAutomaton load​(java.io.InputStream stream)
                                 throws java.io.IOException,
                                        java.io.OptionalDataException,
                                        java.lang.ClassCastException,
                                        java.lang.ClassNotFoundException,
                                        java.io.InvalidClassException
        Retrieves a serialized RunAutomaton from a stream.
        Parameters:
        stream - input stream with serialized automaton
        Throws:
        java.io.IOException - if input/output related exception occurs
        java.io.OptionalDataException - if the data is not a serialized object
        java.io.InvalidClassException - if the class serial number does not match
        java.lang.ClassCastException - if the data is not a serialized RunAutomaton
        java.lang.ClassNotFoundException - if the class of the serialized object cannot be found
      • store

        public void store​(java.io.OutputStream stream)
                   throws java.io.IOException
        Writes this RunAutomaton to the given stream.
        Parameters:
        stream - output stream for serialized automaton
        Throws:
        java.io.IOException - if input/output related exception occurs
      • step

        public int step​(int state,
                        char c)
        Returns the state obtained by reading the given char from the given state. Returns -1 if not obtaining any such state. (If the original Automaton had no dead states, -1 is returned here if and only if a dead state is entered in an equivalent automaton with a total transition function.)
      • run

        public boolean run​(java.lang.String s)
        Returns true if the given string is accepted by this automaton.
      • run

        public int run​(java.lang.String s,
                       int offset)
        Returns the length of the longest accepted run of the given string starting at the given offset.
        Parameters:
        s - the string
        offset - offset into s where the run starts
        Returns:
        length of the longest accepted run, -1 if no run is accepted
      • newMatcher

        public AutomatonMatcher newMatcher​(java.lang.CharSequence s)
        Creates a new automaton matcher for the given input.
        Parameters:
        s - the CharSequence to search
        Returns:
        A new automaton matcher for the given input
      • newMatcher

        public AutomatonMatcher newMatcher​(java.lang.CharSequence s,
                                           int startOffset,
                                           int endOffset)
        Creates a new automaton matcher for the given input.
        Parameters:
        s - the CharSequence to search
        startOffset - the starting offset of the given character sequence
        endOffset - the ending offset of the given character sequence
        Returns:
        A new automaton matcher for the given input