State dotRightState = new NamedState("DOT_RIGHT");
Condition intNumeratorCondition = new NumberCondition();
Condition decPartInt = new NumberCondition();
Condition fslashCondition = new PunctuationValueCondition('/');
Condition intDenominatorCondition = new NumberCondition();
Condition decDenominatorCondition = new DecimalCondition();
Condition decimalCondition = new DecimalCondition();
Condition containsdotCondition = new PunctuationValueCondition('.');
Condition leftContainsShortDose = new ContainsSetTextValueCondition(
iv_textNumeratorSet, false);
startState.addTransition(intNumeratorCondition, numeratorLeftState);
startState.addTransition(leftContainsShortDose, numeratorLeftState);
startState.addTransition(new DecimalCondition(), numeratorLeftState);
startState.addTransition(new AnyCondition(), startState);
numeratorLeftState.addTransition(containsdotCondition, dotLeftState);
numeratorLeftState.addTransition(fslashCondition, fslashState);
numeratorLeftState.addTransition(new PunctuationValueCondition('-'), numeratorRightState);
numeratorLeftState.addTransition(new AnyCondition(), startState);
dotLeftState.addTransition(decPartInt, hypenState);
dotLeftState.addTransition(decDenominatorCondition, hypenState);
dotLeftState.addTransition(new AnyCondition(), startState);
hypenState.addTransition(new PunctuationValueCondition('-'), numeratorRightState);
hypenState.addTransition(new AnyCondition(), startState);
numeratorRightState.addTransition(new NumberCondition(), endState);
numeratorRightState.addTransition(new DecimalCondition(), endState);
numeratorRightState.addTransition(new AnyCondition(), startState);
dotRightState.addTransition(new PunctuationValueCondition('.'), fslashState);
dotRightState.addTransition(new AnyCondition(), startState);