List of usage examples for com.google.common.collect Range hasUpperBound
public boolean hasUpperBound()
From source file:net.conquiris.lucene.search.SearchSupport.java
static boolean maxIncluded(Range<?> range) { return range.hasUpperBound() && range.upperBoundType() == BoundType.CLOSED; }
From source file:net.conquiris.lucene.search.SearchSupport.java
static <T extends Comparable<T>> T max(Range<? extends T> range) { if (range.hasUpperBound()) { return range.upperEndpoint(); }// ww w .ja v a 2s. c om return null; }
From source file:com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughOuterJoin.java
private static boolean isLimited(PlanNode node, Lookup lookup, long limit) { Range<Long> cardinality = extractCardinality(node, lookup); return cardinality.hasUpperBound() && cardinality.upperEndpoint() <= limit; }
From source file:org.apache.druid.sql.calcite.filtration.MoveTimeFiltersToIntervals.java
private static Range<Long> toLongRange(final Range<BoundValue> range) { if (!range.hasUpperBound() && !range.hasLowerBound()) { return Range.all(); } else if (range.hasUpperBound() && !range.hasLowerBound()) { return Range.upTo(Long.parseLong(range.upperEndpoint().getValue()), range.upperBoundType()); } else if (!range.hasUpperBound() && range.hasLowerBound()) { return Range.downTo(Long.parseLong(range.lowerEndpoint().getValue()), range.lowerBoundType()); } else {/*from w ww .ja v a 2 s .c o m*/ return Range.range(Long.parseLong(range.lowerEndpoint().getValue()), range.lowerBoundType(), Long.parseLong(range.upperEndpoint().getValue()), range.upperBoundType()); } }
From source file:org.apache.kylin.common.util.RangeUtil.java
public static <C extends Comparable<?>> boolean upperBoundInclusive(Range<C> range) { if (!range.hasUpperBound()) { throw new IllegalArgumentException(("This range does not have upper bound" + range)); }/* w w w. j av a 2s . c om*/ return range.upperBoundType() == BoundType.CLOSED; }
From source file:org.dishevelled.variation.range.Ranges.java
/** * Return the center of the specified range. * * @param <C> range endpoint type/*from w w w.j av a2 s . c om*/ * @param range range, must not be null * @return the center of the specified range */ public static <C extends Comparable> C center(final Range<C> range) { checkNotNull(range); if (!range.hasUpperBound() && !range.hasUpperBound()) { throw new IllegalStateException("cannot find the center of a range without bounds"); } if (!range.hasLowerBound()) { return range.upperEndpoint(); } if (!range.hasUpperBound()) { return range.lowerEndpoint(); } C lowerEndpoint = range.lowerEndpoint(); C upperEndpoint = range.upperEndpoint(); if (upperEndpoint instanceof Integer) { Integer upper = (Integer) upperEndpoint; Integer lower = (Integer) lowerEndpoint; return (C) Integer.valueOf((upper.intValue() + lower.intValue()) / 2); } if (upperEndpoint instanceof Long) { Long upper = (Long) upperEndpoint; Long lower = (Long) lowerEndpoint; return (C) Long.valueOf((upper.longValue() + lower.longValue()) / 2L); } if (upperEndpoint instanceof BigInteger) { BigInteger upper = (BigInteger) upperEndpoint; BigInteger lower = (BigInteger) lowerEndpoint; BigInteger two = BigInteger.valueOf(2L); return (C) upper.subtract(lower).divide(two); } // todo: could potentially calculate the center of any range with a discrete domain throw new IllegalStateException( "cannot find the center of a range whose endpoint type is not Integer, Long, or BigInteger"); }
From source file:org.nmdp.ngs.range.Ranges.java
/** * Return an ordering by upper endpoint over ranges. * * @param <C> range endpoint type/*from w w w .j a v a2 s . c o m*/ * @return an ordering by upper endpoint over ranges */ public static <C extends Comparable> Ordering<Range<C>> orderingByUpperEndpoint() { return new Ordering<Range<C>>() { @Override public int compare(final Range<C> left, final Range<C> right) { return ComparisonChain.start().compare(left.hasUpperBound(), right.hasUpperBound()) .compare(left.upperEndpoint(), right.upperEndpoint()).result(); } }; }
From source file:org.nmdp.ngs.range.Ranges.java
/** * Return true if the specified range is strictly less than the specified value. * * @param <C> range endpoint type/*from w w w .j a v a2s .c om*/ * @param range range, must not be null * @param value value, must not be null * @return true if the specified range is strictly less than the specified value */ public static <C extends Comparable> boolean isLessThan(final Range<C> range, final C value) { checkNotNull(range); checkNotNull(value); if (!range.hasUpperBound()) { return false; } if (range.upperBoundType() == BoundType.OPEN && range.upperEndpoint().equals(value)) { return true; } return range.upperEndpoint().compareTo(value) < 0; }
From source file:org.apache.druid.sql.calcite.filtration.Bounds.java
public static BoundDimFilter toFilter(final BoundRefKey boundRefKey, final Range<BoundValue> range) { return new BoundDimFilter(boundRefKey.getDimension(), range.hasLowerBound() ? range.lowerEndpoint().getValue() : null, range.hasUpperBound() ? range.upperEndpoint().getValue() : null, range.hasLowerBound() && range.lowerBoundType() == BoundType.OPEN, range.hasUpperBound() && range.upperBoundType() == BoundType.OPEN, null, boundRefKey.getExtractionFn(), boundRefKey.getComparator()); }
From source file:org.nmdp.ngs.range.Ranges.java
/** * Return the center of the specified range. * * @param <C> range endpoint type// w ww. j a v a 2s. c om * @param range range, must not be null * @return the center of the specified range */ public static <C extends Comparable> C center(final Range<C> range) { checkNotNull(range); if (!range.hasLowerBound() && !range.hasUpperBound()) { throw new IllegalStateException("cannot find the center of a range without bounds"); } if (!range.hasLowerBound()) { return range.upperEndpoint(); } if (!range.hasUpperBound()) { return range.lowerEndpoint(); } C lowerEndpoint = range.lowerEndpoint(); C upperEndpoint = range.upperEndpoint(); if (upperEndpoint instanceof Integer) { Integer upper = (Integer) upperEndpoint; Integer lower = (Integer) lowerEndpoint; return (C) Integer.valueOf((upper.intValue() + lower.intValue()) / 2); } if (upperEndpoint instanceof Long) { Long upper = (Long) upperEndpoint; Long lower = (Long) lowerEndpoint; return (C) Long.valueOf((upper.longValue() + lower.longValue()) / 2L); } if (upperEndpoint instanceof BigInteger) { BigInteger upper = (BigInteger) upperEndpoint; BigInteger lower = (BigInteger) lowerEndpoint; BigInteger two = BigInteger.valueOf(2L); return (C) upper.subtract(lower).divide(two); } // todo: could potentially calculate the center of any range with a discrete domain throw new IllegalStateException( "cannot find the center of a range whose endpoint type is not Integer, Long, or BigInteger"); }