Package net.openai.util.fsm

Examples of net.openai.util.fsm.State


   * </ol>
   *
   * @return
   */
  private Machine getDashMachine() {
    State startState = new NamedState("START");
    State endState = new NamedState("END");
    endState.setEndStateFlag(true);

    Machine m = new Machine(startState);

    State leftNumTextState = new NamedState("LEFT_DOSAGE");
    State rightNumTextState = new NamedState("RIGHT_DOSAGE");
    State fslashState = new NamedState("FSLASH");
    Condition dashCondition = new PunctuationValueCondition('/');

    Condition leftNumTextCondition = new StrengthCondition();
    Condition rightIntegerCondition = new IntegerCondition();
    Condition rightNumTextCondition = new WordSetCondition(
        iv_textSuffixSet, false);

    startState.addTransition(leftNumTextCondition, leftNumTextState);
    startState.addTransition(new AnyCondition(), startState);

    leftNumTextState.addTransition(dashCondition, fslashState);
    leftNumTextState.addTransition(new AnyCondition(), startState);

    fslashState.addTransition(rightNumTextCondition, endState);
    fslashState.addTransition(rightIntegerCondition, rightNumTextState);
    fslashState.addTransition(new AnyCondition(), startState);

    rightNumTextState.addTransition(rightNumTextCondition, endState);
    rightNumTextState.addTransition(new AnyCondition(), startState);
    endState.addTransition(new AnyCondition(), startState);

View Full Code Here


      while (machineItr.hasNext()) {
        Machine fsm = (Machine) machineItr.next();

        fsm.input(token);

        State currentState = fsm.getCurrentState();
        if (currentState.getStartStateFlag()) {
          tokenStartMap.put(fsm, new Integer(i));
        }
        if (currentState.getEndStateFlag()) {
          Object o = tokenStartMap.get(fsm);
          int tokenStartIndex;
          if (o == null) {
            // By default, all machines start with
            // token zero.
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getMaximumStatusMachine() {
    State startState = new NamedState("START1");
    State endState = new NamedState("END1");
    State foundDualFirstState = new NamedState("MAXBEGIN");
    endState.setEndStateFlag(true);
   
    Machine m = new Machine(startState);
   
    startState.addTransition(new WordSetCondition(iv_singleMaxWordSet, false), endState);
    startState.addTransition(new WordSetCondition(iv_firstMaxDualWordSet, false), foundDualFirstState);
    startState.addTransition(new AnyCondition(), startState);
   
    foundDualFirstState.addTransition(new WordSetCondition(iv_secondMaxDualWordSet, false), endState);
    foundDualFirstState.addTransition(new AnyCondition(), startState);
   
    endState.addTransition(new AnyCondition(), startState);
    return m;
  }
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getChangeStatusMachine() {
    State startState = new NamedState("START2");
    State endState = new NamedState("END2");
    State byState = new NamedState("BYSTATE");
    endState.setEndStateFlag(true);
   
    Machine m = new Machine(startState);
   
    startState.addTransition(new WordSetCondition(iv_singleChangeWordSet, false), endState);
    startState.addTransition(new TextValueCondition("followed", false), byState);
    startState.addTransition(
        new WordSetCondition(iv_changeWordSet, false), endState);
    startState.addTransition(new AnyCondition(), startState);
   
    byState.addTransition(new TextValueCondition("by", false), endState);
    byState.addTransition(new AnyCondition(), startState);
   
    endState.addTransition(new AnyCondition(), startState);
    return m;
  }
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getSumStatusMachine() {
    State startState = new NamedState("START3");
    State endState = new NamedState("END3");
    endState.setEndStateFlag(true);
 
    Machine m = new Machine(startState);
 
    startState.addTransition(new WordSetCondition(iv_singleSumWordSet, false), endState);
    startState.addTransition(new AnyCondition(), startState);
   
    endState.addTransition(new AnyCondition(), startState);
 
    return m;
  }
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getStartStatusMachine() {
    State startState = new NamedState("START4");
    State endState = new NamedState("END4");
    endState.setEndStateFlag(true);
 
    Machine m = new Machine(startState);
 
    State leftStatusState = new NamedState("LEFT_START_STATUS");
    State leftDosagesState = new NamedState("LEFT_START_DOSE");
    State lastTextState = new NamedState("RIGHT_START_FREQ");
    State middleATextState = new NamedState("MID_START_TEXT");
    State firstDashState = new NamedState("FIRSTDASHSTART");
    State beginEndState = new NamedState("STOPBEGINSTART");
    State endEndState = new NamedState("STARTENDSTART");
    State sectionStatusState = new NamedState("DUALSTARTSTART");
    State thenStatusState = new NamedState("DUALSTARTTHENSTART");
   
    Condition rangeCombineCondition = new DisjoinCondition(
        new RangeCondition(), new RangeStrengthCondition());
 
    Condition sectionBracket = new PunctuationValueCondition('[');
    Condition soloCondition = new WordSetCondition(iv_singleStartWordSet,
        false);
    Condition soloEndCondition = new WordSetCondition(
        iv_singleStartWordSet, false);
    Condition firstDualCondition = new WordSetCondition(
        iv_firstStartDualWordSet, false);
    Condition secondDualCondition = new WordSetCondition(
        iv_secondDualWordSet, false);
    Condition thenCondition = new WordSetCondition(
        iv_multiThenWordSet, false);
    Condition containsDosagesCondition = new StrengthCondition();
 
    startState.addTransition(thenCondition, thenStatusState);
    startState.addTransition(firstDualCondition, sectionStatusState);
    startState.addTransition(sectionBracket, beginEndState);
    startState.addTransition(rangeCombineCondition, leftDosagesState);
    startState.addTransition(containsDosagesCondition, leftStatusState);
    startState.addTransition(soloCondition, endState);
    startState.addTransition(new AnyCondition(), startState);

    thenStatusState.addTransition(firstDualCondition, sectionStatusState);
    thenStatusState.addTransition(soloCondition, endState);
    thenStatusState.addTransition(new AnyCondition(), startState);
   
    sectionStatusState.addTransition(secondDualCondition, endState);
    sectionStatusState.addTransition(new AnyCondition(), startState);
 
    beginEndState.addTransition(soloEndCondition, endEndState);
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getNoChangeStatusMachine() {
    State startState = new NamedState("START5");
    State endState = new NamedState("END5");
    endState.setEndStateFlag(true);
 
    Machine m = new Machine(startState);
 
    State leftStatusState = new NamedState("LEFT_STATUS_NOCHANGE");
    State leftDosagesState = new NamedState("LEFT_DOSE_NOCHANGE");
    State lastTextState = new NamedState("RIGHT_FREQ_NOCHANGE");
    State middleATextState = new NamedState("MID_TEXT_NOCHANGE");
    State firstDashState = new NamedState("FIRSTDASHNOCHANGE");
    State thenStatusState = new NamedState("DUALSTARTINCREASE");
   
 
    State sectionStatusState = new NamedState("DUALSTARTNOCHANGE");
    State dualWordState = new NamedState("START_NOCHANGE");
 
    Condition rangeCombineCondition = new DisjoinCondition(
        new RangeCondition(), new RangeStrengthCondition());
 
    Condition soloCondition = new WordSetCondition(iv_singleNoChangeWordSet,
        false);
    Condition firstDualCondition = new WordSetCondition(
        iv_firstNoChangeDualWordSet, false);
    Condition secondDualCondition = new WordSetCondition(
        iv_secondDualWordSet, false);
    Condition thenCondition = new WordSetCondition(
        iv_multiThenWordSet, false);
    Condition containsDosagesCondition = new StrengthCondition();
 
    startState.addTransition(thenCondition, thenStatusState);
    startState.addTransition(soloCondition, endState);
    startState.addTransition(firstDualCondition, sectionStatusState);
    startState.addTransition(rangeCombineCondition, leftDosagesState);
    startState.addTransition(containsDosagesCondition, leftStatusState);
    startState.addTransition(
        new WordSetCondition(iv_noChangeWordSet, false), dualWordState);
    startState.addTransition(new AnyCondition(), startState);
 
    thenStatusState.addTransition(firstDualCondition, sectionStatusState);
    thenStatusState.addTransition(soloCondition, endState);
    thenStatusState.addTransition(new AnyCondition(), startState);
   
    sectionStatusState.addTransition(secondDualCondition, endState);
    sectionStatusState.addTransition(new AnyCondition(), startState);
 
   
    leftStatusState.addTransition(soloCondition, endState);
    leftStatusState.addTransition(new AnyCondition(), startState);
 
    firstDashState.addTransition(new AnyCondition(), startState);
 
    dualWordState.addTransition(new WordSetCondition(iv_changeWordSet,
        false), endState);
    dualWordState.addTransition(new AnyCondition(), startState);
    middleATextState.addTransition(new AnyCondition(), startState);
 
    lastTextState.addTransition(new AnyCondition(), startState);
 
    endState.addTransition(new AnyCondition(), startState);
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getIncreaseStatusMachine() {
    State startState = new NamedState("START6");
    State endState = new NamedState("END6");
    endState.setEndStateFlag(true);
 
    Machine m = new Machine(startState);
 
    State thenStatusState = new NamedState("DUALSTARTTHENINCREASE");
    State sectionStatusState = new NamedState("DUALSTARTINCREASE");
   
    Condition soloCondition = new WordSetCondition(iv_singleIncreaseWordSet,
        false);
    Condition firstDualCondition = new WordSetCondition(
        iv_firstIncreaseDualWordSet, false);
    Condition secondDualCondition = new WordSetCondition(
        iv_secondDualWordSet, false);
    Condition thenCondition = new WordSetCondition(
        iv_multiThenWordSet, false);
   
    startState.addTransition(thenCondition, thenStatusState);
    startState.addTransition(soloCondition, endState);
    startState.addTransition(firstDualCondition, sectionStatusState);
    startState.addTransition(new AnyCondition(), startState);
   
   
    thenStatusState.addTransition(soloCondition, endState);
    thenStatusState.addTransition(firstDualCondition, sectionStatusState);
    thenStatusState.addTransition(new AnyCondition(), startState);
 
    sectionStatusState.addTransition(secondDualCondition, endState);
    sectionStatusState.addTransition(new AnyCondition(), startState);
   
 
    endState.addTransition(new AnyCondition(), startState);
 
    return m;
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getIncreaseFromAndTheStatusMachine() {
    State startState = new NamedState("START7");
    State endState = new NamedState("END7");
    endState.setEndStateFlag(true);
 
    Machine m = new Machine(startState);
 
    State thenStatusState = new NamedState("DUALSTARTTHENINCREASEFROM");
    State sectionStatusState = new NamedState("DUALFROMINCREASE");

    Condition firstDualCondition = new WordSetCondition(
        iv_firstIncreaseDualWordSet, false);
    Condition secondDualCondition = new WordSetCondition(
        iv_secondDualFromWordSet, false);
    Condition thenCondition = new WordSetCondition(
        iv_multiThenWordSet, false);
   
    startState.addTransition(thenCondition, thenStatusState);
    startState.addTransition(firstDualCondition, sectionStatusState);
    startState.addTransition(new AnyCondition(), startState);
   
    thenStatusState.addTransition(firstDualCondition, sectionStatusState);
    thenStatusState.addTransition(new AnyCondition(), startState);
   
    sectionStatusState.addTransition(secondDualCondition, endState);
    sectionStatusState.addTransition(new AnyCondition(), startState);
   
    endState.addTransition(new AnyCondition(), startState);
 
    return m;
  }
View Full Code Here

   * </ol>
   *
   * @return
   */
  private Machine getDecreaseStatusMachine() {
    State startState = new NamedState("START8");
    State endState = new NamedState("END8");
    endState.setEndStateFlag(true);

    Machine m = new Machine(startState);

    State leftStatusState = new NamedState("LEFT_STATUS_DECREASE");
    State thenStatusState = new NamedState("DUALSTARTTHENDECREASE");
    State sectionStatusState = new NamedState("DUALSTARTDECREASE");

    Condition soloCondition = new WordSetCondition(iv_singleDecreaseWordSet,
        false);
    Condition firstDualCondition = new WordSetCondition(
        iv_firstDecreaseDualWordSet, false);
    Condition secondDualCondition = new WordSetCondition(
        iv_secondDualWordSet, false);
    Condition thenCondition = new WordSetCondition(
        iv_multiThenWordSet, false);
 
    startState.addTransition(thenCondition, thenStatusState);
    startState.addTransition(soloCondition, endState);
    startState.addTransition(firstDualCondition, sectionStatusState);
    startState.addTransition(new AnyCondition(), startState);
   
    thenStatusState.addTransition(soloCondition, endState);
    thenStatusState.addTransition(firstDualCondition, sectionStatusState);
    thenStatusState.addTransition(new AnyCondition(), startState);

    sectionStatusState.addTransition(secondDualCondition, endState);
    sectionStatusState.addTransition(new AnyCondition(), startState);

   
    leftStatusState.addTransition(soloCondition, endState);
    leftStatusState.addTransition(new AnyCondition(), startState);

View Full Code Here

TOP

Related Classes of net.openai.util.fsm.State

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.