protected int rangeUpper(String range){
  int hyphenIndex;
  if ((hyphenIndex=range.indexOf('-')) >= 0) {
    return Math.max(rangeUpper(range.substring(0,hyphenIndex)),rangeUpper(range.substring(hyphenIndex + 1)));
  }
  return rangeSingle(range);
}

protected int rangeUpper ( String range ) { int hyphenIndex ; if ( ( hyphenIndex = range . indexOf ( '-' ) ) >= 0 ) { return Math . max ( rangeUpper ( range . substring ( 0 , hyphenIndex ) ) , rangeUpper ( range . substring ( hyphenIndex + 1 ) ) ) ; } return rangeSingle ( range ) ; }
translates a range into it ' s upper index . must only be called once setupper has been called .
