Example usage for com.google.common.collect DiscreteDomain previous

List of usage examples for com.google.common.collect DiscreteDomain previous

Introduction

In this page you can find the example usage for com.google.common.collect DiscreteDomain previous.

Prototype

public abstract C previous(C value);

Source Link

Document

Returns the unique greatest value of type C that is less than value , or null if none exists.

Usage

From source file:org.kitesdk.data.spi.predicates.Ranges.java

public static <T extends Comparable> Range<T> adjustClosed(Range<T> range, DiscreteDomain<T> domain) {
    // adjust to a closed range to avoid catching extra keys
    if (range.hasLowerBound()) {
        T lower = range.lowerEndpoint();
        if (range.isLowerBoundOpen()) {
            lower = domain.next(lower);//w  w w.ja v  a 2 s . c o m
        }
        if (range.hasUpperBound()) {
            T upper = range.upperEndpoint();
            if (range.isUpperBoundOpen()) {
                upper = domain.previous(upper);
            }
            return closed(lower, upper);
        } else {
            return atLeast(lower);
        }
    } else if (range.hasUpperBound()) {
        T upper = range.upperEndpoint();
        if (range.isUpperBoundOpen()) {
            upper = domain.previous(upper);
        }
        return atMost(upper);
    } else {
        throw new IllegalArgumentException("Invalid range: no endpoints");
    }
}

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

public static <T extends Comparable> Range<T> adjustClosed(Range<T> range, DiscreteDomain<T> domain) {
    // adjust to a closed range to avoid catching extra keys
    if (range.hasLowerBound()) {
        T lower = range.lowerEndpoint();
        if (range.isLowerBoundOpen()) {
            lower = domain.next(lower);/*from  www . j  ava2 s . c  o  m*/
        }
        if (range.hasUpperBound()) {
            T upper = range.upperEndpoint();
            if (range.isUpperBoundOpen()) {
                upper = domain.previous(upper);
            }
            return Ranges.closed(lower, upper);
        } else {
            return Ranges.atLeast(lower);
        }
    } else if (range.hasUpperBound()) {
        T upper = range.upperEndpoint();
        if (range.isUpperBoundOpen()) {
            upper = domain.previous(upper);
        }
        return Ranges.atMost(upper);
    } else {
        throw new IllegalArgumentException("Invalid range: no endpoints");
    }
}