State q2 = automaton.addState();
State q3 = automaton.addState();
State q4 = automaton.addState();
automaton.addTransition(q0, q1, new CharTransitionLabel('a'));
automaton.addTransition(q1, q2, new CharTransitionLabel('a'));
automaton.addTransition(q0, q3, new CharTransitionLabel('a'));
automaton.addTransition(q3, q2, new CharTransitionLabel('c'));
automaton.addTransition(q2, q4, new CharTransitionLabel('b'));
automaton.addLoop(q1, new CharTransitionLabel('b'));
automaton.addLoop(q2, new CharTransitionLabel('d'));
automaton.addLoop(q3, new CharTransitionLabel('a'));