|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.util.automaton.Automaton
public class Automaton
Finite-state automaton with regular expression operations.
Class invariants:
State
and
Transition
objects) or with a singleton string (see
getSingleton()
and expandSingleton()
) in case the automaton
is known to accept exactly one string. (Implicitly, all states and
transitions of an automaton are reachable from its initial state.)
reduce()
) and have no
transitions to dead states (see removeDeadTransitions()
).
isDeterministic()
returns false (but the converse is not required).
If the states or transitions are manipulated manually, the
restoreInvariant()
and setDeterministic(boolean)
methods
should be used afterwards to restore representation invariants that are
assumed by the built-in automata operations.
Note: This class has internal mutable state and is not thread safe. It is
the caller's responsibility to ensure any necessary synchronization if you
wish to use the same Automaton from multiple threads. In general it is instead
recommended to use a RunAutomaton
for multithreaded matching: it is immutable,
thread safe, and much faster.
Field Summary | |
---|---|
static int |
MINIMIZE_HOPCROFT
Minimize using Hopcroft's O(n log n) algorithm. |
Constructor Summary | |
---|---|
Automaton()
|
|
Automaton(State initial)
Constructs a new automaton that accepts the empty language. |
Method Summary | |
---|---|
void |
clearNumberedStates()
|
Automaton |
clone()
Returns a clone of this automaton. |
Automaton |
complement()
See BasicOperations.complement(Automaton) . |
Automaton |
concatenate(Automaton a)
See BasicOperations.concatenate(Automaton, Automaton) . |
static Automaton |
concatenate(List<Automaton> l)
See BasicOperations.concatenate(List) . |
void |
determinize()
See BasicOperations.determinize(Automaton) . |
boolean |
equals(Object obj)
|
void |
expandSingleton()
Expands singleton representation to normal representation. |
Set<State> |
getAcceptStates()
Returns the set of reachable accept states. |
Object |
getInfo()
Returns extra information associated with this automaton. |
State |
getInitialState()
Gets initial state. |
State[] |
getNumberedStates()
|
int |
getNumberOfStates()
Returns the number of states in this automaton. |
int |
getNumberOfTransitions()
Returns the number of transitions in this automaton. |
String |
getSingleton()
Returns the singleton string for this automaton. |
Transition[][] |
getSortedTransitions()
Returns a sorted array of transitions for each state (and sets state numbers). |
int |
hashCode()
|
Automaton |
intersection(Automaton a)
See BasicOperations.intersection(Automaton, Automaton) . |
boolean |
isDeterministic()
Returns deterministic flag for this automaton. |
boolean |
isEmptyString()
See BasicOperations.isEmptyString(Automaton) . |
static Automaton |
minimize(Automaton a)
See MinimizationOperations.minimize(Automaton) . |
Automaton |
minus(Automaton a)
See BasicOperations.minus(Automaton, Automaton) . |
Automaton |
optional()
See BasicOperations.optional(Automaton) . |
void |
reduce()
Reduces this automaton. |
void |
removeDeadTransitions()
Removes transitions to dead states and calls reduce() . |
Automaton |
repeat()
See BasicOperations.repeat(Automaton) . |
Automaton |
repeat(int min)
See BasicOperations.repeat(Automaton, int) . |
Automaton |
repeat(int min,
int max)
See BasicOperations.repeat(Automaton, int, int) . |
void |
restoreInvariant()
Restores representation invariant. |
static boolean |
setAllowMutate(boolean flag)
Sets or resets allow mutate flag. |
void |
setDeterministic(boolean deterministic)
Sets deterministic flag for this automaton. |
void |
setInfo(Object info)
Associates extra information with this automaton. |
static void |
setMinimization(int algorithm)
Selects minimization algorithm (default: MINIMIZE_HOPCROFT ). |
static void |
setMinimizeAlways(boolean flag)
Sets or resets minimize always flag. |
void |
setNumberedStates(State[] states)
|
void |
setNumberedStates(State[] states,
int count)
|
boolean |
subsetOf(Automaton a)
See BasicOperations.subsetOf(Automaton, Automaton) . |
String |
toDot()
Returns Graphviz Dot representation of this automaton. |
String |
toString()
Returns a string representation of this automaton. |
Automaton |
union(Automaton a)
See BasicOperations.union(Automaton, Automaton) . |
static Automaton |
union(Collection<Automaton> l)
See BasicOperations.union(Collection) . |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int MINIMIZE_HOPCROFT
setMinimization(int)
,
Constant Field ValuesConstructor Detail |
---|
public Automaton(State initial)
State
and
Transition
objects.
State
,
Transition
public Automaton()
Method Detail |
---|
public static void setMinimization(int algorithm)
MINIMIZE_HOPCROFT
).
algorithm
- minimization algorithmpublic static void setMinimizeAlways(boolean flag)
MinimizationOperations.minimize(Automaton)
will automatically be
invoked after all operations that otherwise may produce non-minimal
automata. By default, the flag is not set.
flag
- if true, the flag is setpublic static boolean setAllowMutate(boolean flag)
flag
- if true, the flag is set
public String getSingleton()
public State getInitialState()
public boolean isDeterministic()
public void setDeterministic(boolean deterministic)
deterministic
- true if the automaton is definitely deterministic,
false if the automaton may be nondeterministicpublic void setInfo(Object info)
info
- extra informationpublic Object getInfo()
setInfo(Object)
public State[] getNumberedStates()
public void setNumberedStates(State[] states)
public void setNumberedStates(State[] states, int count)
public void clearNumberedStates()
public Set<State> getAcceptStates()
State
objectspublic void restoreInvariant()
setDeterministic(boolean)
public void reduce()
public void removeDeadTransitions()
reduce()
.
(A state is "dead" if no accept state is
reachable from it.)
public Transition[][] getSortedTransitions()
public void expandSingleton()
public int getNumberOfStates()
public int getNumberOfTransitions()
public boolean equals(Object obj)
equals
in class Object
public int hashCode()
hashCode
in class Object
public String toString()
toString
in class Object
public String toDot()
public Automaton clone()
clone
in class Object
public Automaton concatenate(Automaton a)
BasicOperations.concatenate(Automaton, Automaton)
.
public static Automaton concatenate(List<Automaton> l)
BasicOperations.concatenate(List)
.
public Automaton optional()
BasicOperations.optional(Automaton)
.
public Automaton repeat()
BasicOperations.repeat(Automaton)
.
public Automaton repeat(int min)
BasicOperations.repeat(Automaton, int)
.
public Automaton repeat(int min, int max)
BasicOperations.repeat(Automaton, int, int)
.
public Automaton complement()
BasicOperations.complement(Automaton)
.
public Automaton minus(Automaton a)
BasicOperations.minus(Automaton, Automaton)
.
public Automaton intersection(Automaton a)
BasicOperations.intersection(Automaton, Automaton)
.
public boolean subsetOf(Automaton a)
BasicOperations.subsetOf(Automaton, Automaton)
.
public Automaton union(Automaton a)
BasicOperations.union(Automaton, Automaton)
.
public static Automaton union(Collection<Automaton> l)
BasicOperations.union(Collection)
.
public void determinize()
BasicOperations.determinize(Automaton)
.
public boolean isEmptyString()
BasicOperations.isEmptyString(Automaton)
.
public static Automaton minimize(Automaton a)
MinimizationOperations.minimize(Automaton)
. Returns the
automaton being given as argument.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |