Example usage for com.google.common.collect Range hasUpperBound

List of usage examples for com.google.common.collect Range hasUpperBound

Introduction

In this page you can find the example usage for com.google.common.collect Range hasUpperBound.

Prototype

public boolean hasUpperBound() 

Source Link

Document

Returns true if this range has an upper endpoint.

Usage

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");
}