* <li>25.7-30.2 mg</li>
* <li>two-3.5mg</li>
* </ol>
*/
private Machine getStrengthMachine(){
State startState = new NamedState("START");
State endState = new NamedState("END");
State connectState = new NamedState("CONNECT");
State unitState = new NamedState("UNIT");
State decimalState = new NamedState("DOT");
State complexState = new NamedState("COMPLEX");
State hyphenState = new NamedState("HYPHEN");
State dateState = new NamedState("DATE");
State ntEndState = new NonTerminalEndState("NON TERMINAL END");
State ntEndHyphState = new NonTerminalEndState("NON TERMINAL HYPH END");
endState.setEndStateFlag(true);
ntEndState.setEndStateFlag(true);
ntEndHyphState.setEndStateFlag(true);
startState.addTransition(new RangeStrengthCondition(), endState);
startState.addTransition(new FractionStrengthCondition(), dateState);
startState.addTransition(new NumberCondition(), connectState);
startState.addTransition(new IntegerCondition(), connectState);
startState.addTransition(new DecimalCondition(), connectState);
startState.addTransition(new WordSetCondition(iv_numberTextSet, false), connectState);
//Mayo SPM 2/20/2012 Changed due to separation of strength tokens
// startState.addTransition(new StrengthUnitCondition(), ntEndState);
startState.addTransition(new StrengthUnitCombinedCondition(), endState);
startState.addTransition(new AnyCondition(), startState);
dateState.addTransition(new NegateCondition( new PunctuationValueCondition('/')), connectState);
dateState.addTransition(new AnyCondition(), startState);
//Mayo SPM 2/20/2012 Changed due to separation of strength tokens
connectState.addTransition(new StrengthUnitCondition(), ntEndState);
connectState.addTransition(new StrengthUnitCombinedCondition(), endState);
connectState.addTransition(new PunctuationValueCondition('-'), unitState);
connectState.addTransition(new PunctuationValueCondition('.'), decimalState);
connectState.addTransition(new AnyCondition(), startState);
//Mayo SPM 2/20/2012 Changed due to separation of strength tokens
decimalState.addTransition(new StrengthUnitCondition(), ntEndState);
decimalState.addTransition(new StrengthUnitCombinedCondition(), endState);
decimalState.addTransition(new PunctuationValueCondition('-'), unitState);
decimalState.addTransition(new NumberCondition(), complexState);
decimalState.addTransition(new AnyCondition(), startState);
//Mayo SPM 2/20/2012 Changed due to separation of strength tokens
unitState.addTransition(new StrengthUnitCondition(), ntEndHyphState);
unitState.addTransition(new StrengthUnitCombinedCondition(), endState);
unitState.addTransition(new AnyCondition(), startState);
complexState.addTransition(new PunctuationValueCondition('-'), hyphenState);
complexState.addTransition(new AnyCondition(), startState);
//Mayo SPM 2/20/2012 Changed due to separation of strength tokens
hyphenState.addTransition(new StrengthUnitCondition(), ntEndHyphState);
hyphenState.addTransition(new AnyCondition() , startState);
ntEndHyphState.addTransition(new AnyCondition(), startState);
ntEndState.addTransition(new AnyCondition(), startState);
endState.addTransition(new AnyCondition(), startState);
Machine m = new Machine(startState);
return m;
}