code: private void handleRange(final String range) {
  
  		final String[] parts = range.split("[\\-]+");
  		switch (parts.length) {
  
  			case 1:
  				// no range
  				final Integer singleNumber = toInt(parts[0]);
  				if (singleNumber != null) {
  
  					ranges.add(new Range(singleNumber, singleNumber));
  				}
  				break;
  
  			case 2:
  				// valid range
  				final Integer first = toInt(parts[0]);
  				final Integer last  = toInt(parts[1]);
  
  				if (first != null && last != null) {
  
  					ranges.add(new Range(first, last));
  
  				} else {
  
  					throw new IllegalArgumentException("Range must have two boundaries");
  				}
  				break;
  
  			default:
  				logger.warn("Invalid range specification, unable to parse {}, ignoring.", range);
  		}
  	}
docs: ----- private methods -----