Home | History | Annotate | Download | only in impl

Lines Matching refs:ranges

88             // TODO rewire to use the first (slower) algorithm to generate the ranges, then compact them from there.
90 Relation<Integer,Ranges> lengthToArrays = Relation.of(new TreeMap<Integer,Set<Ranges>>(), TreeSet.class);
92 Ranges item = new Ranges(s);
96 for (Entry<Integer, Set<Ranges>> entry : lengthToArrays.keyValuesSet()) {
97 LinkedList<Ranges> compacted = compact(entry.getKey(), entry.getValue());
98 for (Ranges ranges : compacted) {
99 adder.add(ranges.start(), ranges.end(shorterPairs));
115 private static LinkedList<Ranges> compact(int size, Set<Ranges> inputRanges) {
116 LinkedList<Ranges> ranges = new LinkedList<Ranges>(inputRanges);
118 Ranges last = null;
119 for (Iterator<Ranges> it = ranges.iterator(); it.hasNext();) {
120 Ranges item = it.next();
130 return ranges;
163 static final class Ranges implements Comparable<Ranges> {
164 private final Range[] ranges;
165 public Ranges(String s) {
167 ranges = new Range[array.length];
169 ranges[i] = new Range(array[i], array[i]);
172 public boolean merge(int pivot, Ranges other) {
173 // We merge items if the pivot is adjacent, and all later ranges are equal.
174 for (int i = ranges.length-1; i >= 0; --i) {
176 if (ranges[i].max != other.ranges[i].min-1) { // not adjacent
180 if (!ranges[i].equals(other.ranges[i])) {
186 ranges[pivot].max = other.ranges[pivot].max;
193 for (int i = 0; i < ranges.length; ++i) {
194 result.appendCodePoint(ranges[i].min);
200 if (firstDiff == ranges.length) {
204 for (int i = mostCompact ? firstDiff : 0; i < ranges.length; ++i) {
205 result.appendCodePoint(ranges[i].max);
210 for (int i = 0; i < ranges.length; ++i) {
211 if (ranges[i].min != ranges[i].max){
215 return ranges.length;
218 return ranges.length;
221 public int compareTo(Ranges other) {
222 int diff = ranges.length - other.ranges.length;
226 for (int i = 0; i < ranges.length; ++i) {
227 diff = ranges[i].compareTo(other.ranges[i]);