if (min != Character.MIN_VALUE || max != Character.MAX_VALUE) {
transitions.remove(t);
for (int c = min; c <= max; c++) {
String up = String.valueOf((char)c).toUpperCase();
if (up.length() == 1) {
transitions.add(new Transition(Character.toUpperCase((char) c), dest));
} else {
// YES some characters translate to more than one character when turned upper case
// for example the German character "�" becomes "SS"
State lastState = s;
for (int i=0; i<up.length()-1; i++) {
char ch = up.charAt(i);
State state = new State();
lastState.addTransition(new Transition(ch, state));
lastState = state;
}
lastState.addTransition(new Transition(up.charAt(up.length()-1), dest));
}
}
}
}
}