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);