Example usage for org.apache.lucene.util.automaton Automaton initTransition

List of usage examples for org.apache.lucene.util.automaton Automaton initTransition

Introduction

In this page you can find the example usage for org.apache.lucene.util.automaton Automaton initTransition.

Prototype

public int initTransition(int state, Transition t) 

Source Link

Document

Initialize the provided Transition to iterate through all transitions leaving the specified state.

Usage

From source file:org.getopt.luke.Luke.java

License:Apache License

private void addAutomaton(Object parent, Automaton a) {

    Object n = create("node");
    setString(n, "text", "Automaton: " + a != null ? a.toDot() : "null");
    add(parent, n);//  w  ww. j a v a  2s  .  com

    Transition t = new Transition();

    for (int state = 0; state < a.getNumStates(); state++) {
        Object n1 = create("node");
        add(n, n1);

        StringBuilder msg = new StringBuilder();
        msg.append(String.valueOf(state));

        // initial state
        if (state == 0) {
            msg.append(" INITIAL");
        }

        msg.append(a.isAccept(state) ? " [accept]" : " [reject]");

        int numTransitions = a.initTransition(state, t);

        msg.append(", " + numTransitions + " transitions");
        setString(n1, "text", msg.toString());

        //System.out.println("toDot: state " + state + " has " + numTransitions + " transitions; t.nextTrans=" + t.transitionUpto);
        for (int i = 0; i < numTransitions; i++) {
            a.getNextTransition(t);

            Object n2 = create("node");
            add(n1, n2);
            setString(n2, "text", t.toString());
            assert t.max >= t.min;
        }
    }
}