List of usage examples for com.google.common.collect Range hasLowerBound
public boolean hasLowerBound()
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; }