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

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

Introduction

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

Prototype

public boolean hasLowerBound() 

Source Link

Document

Returns true if this range has a lower endpoint.

Usage

From source file:be.nbb.jackcess.CursorFacade.java

@Nonnull
public static CursorFacade range(@Nonnull Table table, @Nonnull Range<RowId> range) throws IOException {
    CursorFacade basic = basic(table);/*from w w w  .  j  av  a 2s.c  o m*/
    if (range.hasLowerBound()) {
        basic.moveBefore(range.lowerEndpoint());
    }
    return range.hasUpperBound() ? new UpperBounded(basic, range.upperEndpoint()) : basic;
}

From source file:org.nmdp.ngs.range.Ranges.java

/**
 * Return the center of the specified range.
 *
 * @param <C> range endpoint type/* w w  w  .  j  a  v a  2s .co m*/
 * @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");
}

From source file:org.nmdp.ngs.range.Ranges.java

/**
 * Return an ordering by lower endpoint over ranges.
 *
 * @param <C> range endpoint type//from  ww  w  .  ja v a 2  s .c o m
 * @return an ordering by lower endpoint over ranges
 */
public static <C extends Comparable> Ordering<Range<C>> orderingByLowerEndpoint() {
    return new Ordering<Range<C>>() {
        @Override
        public int compare(final Range<C> left, final Range<C> right) {
            return ComparisonChain.start().compare(left.hasLowerBound(), right.hasLowerBound())
                    .compare(left.lowerEndpoint(), right.lowerEndpoint()).result();
        }
    };
}

From source file:org.nmdp.ngs.range.Ranges.java

/**
 * Return true if the specified range is strictly greater than the specified value.
 *
 * @param <C> range endpoint type/*  w w w.  j av  a2s .co  m*/
 * @param range range, must not be null
 * @param value value, must not be null
 * @return true if the specified range is strictly greater than the specified value
 */
public static <C extends Comparable> boolean isGreaterThan(final Range<C> range, final C value) {
    checkNotNull(range);
    checkNotNull(value);

    if (!range.hasLowerBound()) {
        return false;
    }
    if (range.lowerBoundType() == BoundType.OPEN && range.lowerEndpoint().equals(value)) {
        return true;
    }
    return range.lowerEndpoint().compareTo(value) > 0;
}

From source file:org.cinchapi.concourse.server.model.Ranges.java

/**
 * Equivalent to {@link Range#lowerEndpoint()} except that
 * {@link Value#NEGATIVE_INFINITY} is returned if the {@code range} does not
 * have a defined lower bound.//from   w ww.  j a  v  a  2s  .c o m
 * 
 * @param range
 * @return the lower endpoint
 */
public static Value getLowerEndpoint(Range<Value> range) {
    if (!range.hasLowerBound()) {
        return Value.NEGATIVE_INFINITY;
    } else {
        return range.lowerEndpoint();
    }
}

From source file:com.tinspx.util.base.NumberUtils.java

@SuppressWarnings("unchecked")
public static Range<Long> toLongRange(@NonNull Range<? extends Number> range) {
    if (range.hasLowerBound()) {
        if (range.hasUpperBound()) {
            if (range.lowerEndpoint() instanceof Long && range.upperEndpoint() instanceof Long) {
                return (Range<Long>) range;
            }/*from  w  w w  . j a v  a 2s .  c om*/
            return Range.range(range.lowerEndpoint().longValue(), range.lowerBoundType(),
                    range.upperEndpoint().longValue(), range.upperBoundType());
        } else {
            if (range.lowerEndpoint() instanceof Long) {
                return (Range<Long>) range;
            }
            return Range.downTo(range.lowerEndpoint().longValue(), range.lowerBoundType());
        }
    } else if (range.hasUpperBound()) {
        if (range.upperEndpoint() instanceof Long) {
            return (Range<Long>) range;
        }
        return Range.upTo(range.upperEndpoint().longValue(), range.upperBoundType());
    } else {
        return Range.all();
    }
}

From source file:org.learningu.scheduling.util.bst.GeneralRange.java

/**
 * Converts a Range to a GeneralRange./*  w ww  . j  av  a 2  s .c o  m*/
 */
@SuppressWarnings("rawtypes")
static <T extends Comparable> GeneralRange<T> from(Range<T> range) {
    @Nullable
    T lowerEndpoint = range.hasLowerBound() ? range.lowerEndpoint() : null;
    BoundType lowerBoundType = range.hasLowerBound() ? range.lowerBoundType() : OPEN;

    @Nullable
    T upperEndpoint = range.hasUpperBound() ? range.upperEndpoint() : null;
    BoundType upperBoundType = range.hasUpperBound() ? range.upperBoundType() : OPEN;
    return new GeneralRange<T>(Ordering.natural(), range.hasLowerBound(), lowerEndpoint, lowerBoundType,
            range.hasUpperBound(), upperEndpoint, upperBoundType);
}

From source file:org.kitesdk.data.spi.ConstraintsSerialization.java

/**
 * Serializes an {@link Range} into the specified {@code out} stream.
 *//*from w  w  w.j  ava  2  s.  c o m*/
private static void writeRangePredicate(Schema fieldSchema, Range range, ObjectOutputStream out)
        throws IOException {
    if (range.hasLowerBound()) {
        //write out that there is a lower endpoint and the value.
        out.writeBoolean(true);
        out.writeBoolean(range.isLowerBoundOpen());
        writeValue(fieldSchema, range.lowerEndpoint(), out);
    } else {
        //Write that there is no lower bound
        out.writeBoolean(false);
    }

    if (range.hasUpperBound()) {
        out.writeBoolean(true);
        out.writeBoolean(range.isUpperBoundOpen());
        //write out that there is a lower endpoint and the value.
        writeValue(fieldSchema, range.upperEndpoint(), out);
    } else {
        //write out that there is not an upper bound
        out.writeBoolean(false);
    }
}

From source file:org.immutables.mongo.repository.internal.Support.java

@SuppressWarnings("unchecked")
public static <T extends Comparable<T>> Range<Comparable<Object>> writable(TypeAdapter<T> adapter,
        Range<T> range) {
    if (range.hasLowerBound() && range.hasUpperBound()) {
        return Range.range((Comparable<Object>) writable(adapter, range.lowerEndpoint()),
                range.lowerBoundType(), (Comparable<Object>) writable(adapter, range.upperEndpoint()),
                range.upperBoundType());
    } else if (range.hasLowerBound()) {
        return Range.downTo((Comparable<Object>) writable(adapter, range.lowerEndpoint()),
                range.lowerBoundType());
    } else if (range.hasUpperBound()) {
        return Range.upTo((Comparable<Object>) writable(adapter, range.upperEndpoint()),
                range.upperBoundType());
    }/*www .  ja v  a 2 s .c o m*/
    throw new AssertionError();
}

From source file:org.apache.calcite.adapter.druid.DruidDateTimeUtils.java

protected static List<LocalInterval> toInterval(List<Range<Calendar>> ranges) {
    List<LocalInterval> intervals = Lists.transform(ranges, new Function<Range<Calendar>, LocalInterval>() {
        public LocalInterval apply(Range<Calendar> range) {
            if (!range.hasLowerBound() && !range.hasUpperBound()) {
                return DruidTable.DEFAULT_INTERVAL;
            }/*from www  . j  av a2s  .  c o  m*/
            long start = range.hasLowerBound() ? range.lowerEndpoint().getTime().getTime()
                    : DruidTable.DEFAULT_INTERVAL.getStartMillis();
            long end = range.hasUpperBound() ? range.upperEndpoint().getTime().getTime()
                    : DruidTable.DEFAULT_INTERVAL.getEndMillis();
            if (range.hasLowerBound() && range.lowerBoundType() == BoundType.OPEN) {
                start++;
            }
            if (range.hasUpperBound() && range.upperBoundType() == BoundType.CLOSED) {
                end++;
            }
            return LocalInterval.create(start, end);
        }
    });
    if (LOGGER.isInfoEnabled()) {
        LOGGER.info("Converted time ranges " + ranges + " to interval " + intervals);
    }
    return intervals;
}