/** Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} representing the union of the specified ranges. * * <p>This is the smallest {@code RangeSet} which encloses each of the specified ranges. An * element will be contained in this {@code RangeSet} if and only if it is contained in at least * one {@code Range} in {@code ranges}. * * @since 21.0 */ public static <C extends Comparable<?>> TreeRangeSet<C> create(Iterable<Range<C>> ranges) { TreeRangeSet<C> result = create(); result.addAll(ranges); return result; }
/** Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} representing the union of the specified ranges. * * <p>This is the smallest {@code RangeSet} which encloses each of the specified ranges. An * element will be contained in this {@code RangeSet} if and only if it is contained in at least * one {@code Range} in {@code ranges}. * * @since 21.0 */ public static <C extends Comparable<?>> TreeRangeSet<C> create(Iterable<Range<C>> ranges) { TreeRangeSet<C> result = create(); result.addAll(ranges); return result; }
/** Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} representing the union of the specified ranges. * * <p>This is the smallest {@code RangeSet} which encloses each of the specified ranges. An * element will be contained in this {@code RangeSet} if and only if it is contained in at least * one {@code Range} in {@code ranges}. * * @since 21.0 */ public static <C extends Comparable<?>> TreeRangeSet<C> create(Iterable<Range<C>> ranges) { TreeRangeSet<C> result = create(); result.addAll(ranges); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} initialized with the ranges in the specified range set. */ public static <C extends Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet) { TreeRangeSet<C> result = create(); result.addAll(rangeSet); return result; }
/** * Returns a {@code TreeRangeSet} representing the union of the specified ranges. * * <p>This is the smallest {@code RangeSet} which encloses each of the specified ranges. An * element will be contained in this {@code RangeSet} if and only if it is contained in at least * one {@code Range} in {@code ranges}. * * @since 21.0 */ public static <C extends Comparable<?>> TreeRangeSet<C> create(Iterable<Range<C>> ranges) { TreeRangeSet<C> result = create(); result.addAll(ranges); return result; }
/** * Returns a {@code TreeRangeSet} representing the union of the specified ranges. * * <p>This is the smallest {@code RangeSet} which encloses each of the specified ranges. An * element will be contained in this {@code RangeSet} if and only if it is contained in at least * one {@code Range} in {@code ranges}. * * @since 21.0 */ public static <C extends Comparable<?>> TreeRangeSet<C> create(Iterable<Range<C>> ranges) { TreeRangeSet<C> result = create(); result.addAll(ranges); return result; }
@Override public RangeSet<RowKeyWrapper> getIndexScanHint(FilterList filter) { final List<RangeSet<RowKeyWrapper>> childHints = collectChildHints(filter); if (childHints.isEmpty()) { return ImmutableRangeSet.of(Range.<RowKeyWrapper>all()); } // Optimization else if (childHints.size() == 1) { return childHints.get(0); } TreeRangeSet<RowKeyWrapper> result = TreeRangeSet.create(childHints.get(0)); switch (filter.getOperator()) { case MUST_PASS_ONE: // Union all for (int i = 1; i < childHints.size(); i++) { result.addAll(childHints.get(i)); } break; case MUST_PASS_ALL: // Intersect all for (int i = 1; i < childHints.size(); i++) { result.removeAll(childHints.get(i).complement()); } break; default: throw new IllegalStateException("Unknown operator: " + filter.getOperator()); } // Wrap in an ImmutableRangeSet to keep the singleton RangeSet.all() return ImmutableRangeSet.copyOf(result); }
@Override public RangeSet<RowKeyWrapper> getIndexScanHint(FilterList filter) { final List<RangeSet<RowKeyWrapper>> childHints = collectChildHints(filter); if (childHints.isEmpty()) { return ImmutableRangeSet.of(Range.<RowKeyWrapper>all()); } // Optimization else if (childHints.size() == 1) { return childHints.get(0); } TreeRangeSet<RowKeyWrapper> result = TreeRangeSet.create(childHints.get(0)); switch (filter.getOperator()) { case MUST_PASS_ONE: // Union all for (int i = 1; i < childHints.size(); i++) { result.addAll(childHints.get(i)); } break; case MUST_PASS_ALL: // Intersect all for (int i = 1; i < childHints.size(); i++) { result.removeAll(childHints.get(i).complement()); } break; default: throw new IllegalStateException("Unknown operator: " + filter.getOperator()); } // Wrap in an ImmutableRangeSet to keep the singleton RangeSet.all() return ImmutableRangeSet.copyOf(result); }
private static Stream<FalcorPath> collapseNumeric(int index, int size, List<FalcorPath> paths) { Stream.Builder<FalcorPath> builder = Stream.builder(); while (!paths.isEmpty()) { FalcorPath path = paths.remove(0); FalcorPath tail = path.subList(index + 1, size); TreeRangeSet<Long> rangeSet = TreeRangeSet.create(); for (Iterator<FalcorPath> iterator = paths.iterator(); iterator.hasNext(); ) { FalcorPath value = iterator.next(); if (value.subList(index + 1, size).equals(tail)) { rangeSet.addAll(value.get(index).asRangeSet()); iterator.remove(); } } if (rangeSet.isEmpty()) { builder.add(path); } else { rangeSet.addAll(path.get(index).asRangeSet()); builder.add(path.set(index, new NumericSet(rangeSet))); } } return builder.build(); }