static Indexes parse(String indexes) { if (StringUtils.isBlank(indexes)) { return ALL; } else if (INDEX_PATTERN.matcher(indexes).matches()) { return new SimpleIndexes(Integer.parseInt(indexes)); } else if (RANGE_PATTERN.matcher(indexes).matches()) { final String leftAsString = StringUtils.substringBefore(indexes, ":"); final String rightAsString = StringUtils.substringAfter(indexes, ":"); return new RangeIndexes( StringUtils.isNotBlank(leftAsString) ? Integer.parseInt(leftAsString) : null, StringUtils.isNotBlank(rightAsString) ? Integer.parseInt(rightAsString) : null); } else { return EMPTY; } }