/branches/branch-1.0/src/org/getopt/luke/Ranges.java
http://luke.googlecode.com/ · Java · 35 lines · 31 code · 4 blank · 0 comment · 8 complexity · 5042c0b9740467f53e93cc2463e7fc4e MD5 · raw file
- package org.getopt.luke;
- import org.apache.lucene.util.OpenBitSet;
- @SuppressWarnings("serial")
- public class Ranges extends OpenBitSet {
-
- public static Ranges parse(String expr) throws Exception {
- Ranges res = new Ranges();
- expr = expr.replaceAll("\\s+", "");
- if (expr.length() == 0) {
- return res;
- }
- String[] ranges = expr.split(",");
- for (int i = 0; i < ranges.length; i++) {
- String[] ft = ranges[i].split("-");
- int from, to;
- from = Integer.parseInt(ft[0]);
- if (ft.length == 1) {
- res.set(from);
- } else {
- to = Integer.parseInt(ft[1]);
- res.set(from, to);
- }
- }
- return res;
- }
-
- public void set(int from, int to) {
- if (from > to) return;
- for (int i = from; i <= to; i++) {
- set(i);
- }
- }
- }