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

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

Introduction

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

Prototype

public static <C extends Comparable<?>> Range<C> closed(C lower, C upper) 

Source Link

Document

Returns a range that contains all values greater than or equal to lower and less than or equal to upper .

Usage

From source file:com.comphenix.protocol.RangeParser.java

/**
 * Parse ranges from an array of elements.
 * @param args - array of elements./*ww w .  ja  v a2  s . c  om*/
 * @param offset - beginning offset.
 * @param lastIndex - the last index of the array to read.
 * @param legalRange - range of legal values.
 * @return The parsed ranges.
 */
public static List<Range<Integer>> getRanges(Deque<String> input, Range<Integer> legalRange) {
    List<String> tokens = tokenizeInput(input);
    List<Range<Integer>> ranges = new ArrayList<Range<Integer>>();

    for (int i = 0; i < tokens.size(); i++) {
        Range<Integer> range;
        String current = tokens.get(i);
        String next = i + 1 < tokens.size() ? tokens.get(i + 1) : null;

        // Yoda equality is done for null-safety
        if ("-".equals(current)) {
            throw new IllegalArgumentException("A hyphen must appear between two numbers.");
        } else if ("-".equals(next)) {
            if (i + 2 >= tokens.size())
                throw new IllegalArgumentException("Cannot form a range without a upper limit.");

            // This is a proper range
            range = Range.closed(Integer.parseInt(current), Integer.parseInt(tokens.get(i + 2)));
            ranges.add(range);

            // Skip the two next tokens
            i += 2;

        } else {
            // Just a single number
            range = Range.singleton(Integer.parseInt(current));
            ranges.add(range);
        }

        // Validate ranges
        if (!legalRange.encloses(range)) {
            throw new IllegalArgumentException(range + " is not in the range " + range.toString());
        }
    }

    return simplify(ranges, legalRange.upperEndpoint());
}

From source file:org.apache.bookkeeper.mledger.impl.ReadOnlyCursorImpl.java

public ReadOnlyCursorImpl(BookKeeper bookkeeper, ManagedLedgerConfig config, ManagedLedgerImpl ledger,
        PositionImpl startPosition, String cursorName) {
    super(bookkeeper, config, ledger, cursorName);

    if (startPosition.equals(PositionImpl.earliest)) {
        readPosition = ledger.getFirstPosition().getNext();
    } else {//from   w  w  w . j  av  a2 s  .c o m
        readPosition = startPosition;
    }

    if (ledger.getLastPosition().compareTo(readPosition) <= 0) {
        messagesConsumedCounter = 0;
    } else {
        messagesConsumedCounter = -getNumberOfEntries(Range.closed(readPosition, ledger.getLastPosition()));
    }

    this.state = State.NoLedger;
}

From source file:org.mskcc.shenkers.control.track.bigwig.BigWigUtil.java

public static RangeMap<Integer, Double> values(BBFileReader bbfr, String chr, int start, int end, int zoom) {

    boolean contained = false;
    Iterator<BBItem> iterator = null;
    if (zoom == 0) {
        BigWigIterator bwi = bbfr.getBigWigIterator(chr, start - 1, chr, end, false);
        iterator = StreamSupport.stream(Spliterators.spliteratorUnknownSize(bwi, 0), false)
                .map(w -> new BBItem(w)).iterator();
    } else {/* ww  w. j  av  a  2 s.  c  o  m*/
        ZoomLevelIterator zli = bbfr.getZoomLevelIterator(zoom, chr, start - 1, chr, end, contained);
        iterator = StreamSupport.stream(Spliterators.spliteratorUnknownSize(zli, 0), false)
                .map(w -> new BBItem(w)).iterator();
    }

    RangeMap<Integer, Double> cov = TreeRangeMap.create();
    while (iterator.hasNext()) {
        BBItem wi = iterator.next();
        cov.put(Range.closed(wi.getStart() + 1, wi.getEnd()), wi.getValue());
    }

    return cov;
}

From source file:com.rockhoppertech.music.examples.Guava.java

public static void ranges() {
    RangeSet<Double> set = TreeRangeSet.create();
    //        for (double i = 1d; i < 4d; i++) {
    //            set.add(Range.closed(i, i + 1d));
    //        }//  w ww .  j a  va2s. co  m

    set.add(Range.closed(1d, 4d));
    logger.debug("the set {}", set);

    set.remove(Range.closed(2.5, 3d));
    logger.debug("after remove: set {}", set);
    RangeSet<Double> comp = set.complement();
    logger.debug("after remove: set comp {}", comp);

    Range<Double> first = Iterables.getFirst(set.asRanges(), null);
    logger.debug("first {}", first);

    //Iterables.

    for (Range<Double> r : set.asRanges()) {
        logger.debug("iterated range {}", r);
    }

    //lowerEndpoint();

    set.clear();
    set.add(Range.open(1d, 4d));
    comp = set.complement();
    logger.debug("open comp {}", comp);

}

From source file:me.lucko.luckperms.common.utils.Predicates.java

public static Predicate<Integer> inRange(int start, int end) {
    Range<Integer> range = Range.closed(start, end);
    return range::contains;
}

From source file:io.github.msdk.util.RTTolerance.java

/**
 * <p>/* w ww  .  j ava2  s .  c o  m*/
 * getToleranceRange.
 * </p>
 *
 * @param rtValue
 *            a double.
 * @return a {@link com.google.common.collect.Range} object.
 */
public Range<Double> getToleranceRange(final double rtValue) {
    final double absoluteTolerance = isAbsolute ? rtTolerance : rtValue * rtTolerance;
    return Range.closed(rtValue - absoluteTolerance, rtValue + absoluteTolerance);
}

From source file:org.openfact.common.finance.internal.languages.SlavonicPluralForms.java

private boolean usePluralForm(Integer value) {
    return Range.closed(2, 4).contains(value % 10) && !Range.closed(12, 14).contains(value % 100);
}

From source file:org.mskcc.shenkers.view.StackedIntervalView.java

public void setData(List<Pair<Integer, Integer>> intervals) {

    Collections.sort(intervals, new Comparator<Pair<Integer, Integer>>() {

        @Override/*  ww w.j av  a2s.co m*/
        public int compare(Pair<Integer, Integer> o1, Pair<Integer, Integer> o2) {
            return o1.getKey() - o2.getKey();
        }
    });

    //        Pair<Integer, Integer> r = intervals.get(0);
    for (Pair<Integer, Integer> interval : intervals) {
        Range<Integer> range = Range.closed(interval.getKey(), interval.getValue());
        int i = 0;
        added: {
            // add the interval to the first row that doesn't intersect with
            while (i < rows.size()) {
                TreeRangeSet<Integer> set = rows.get(i);
                RangeSet<Integer> intersection = set.subRangeSet(
                        Range.closed(interval.getKey() - minSpace, interval.getValue() + minSpace));
                if (intersection.isEmpty()) {
                    set.add(range);
                    break added;
                }
                i++;
            }
            TreeRangeSet<Integer> row = TreeRangeSet.create();
            row.add(range);
            rows.add(row);
        }
    }

    List<Node> content = new ArrayList<>();
    for (RangeSet<Integer> row : rows) {
        RangeSetIntervalView rowView = new RangeSetIntervalView(min, max);
        rowView.setData(row);
        content.add(rowView);
    }

    getChildren().setAll(content);
}

From source file:com.cinchapi.concourse.server.concurrent.RangeTokens.java

/**
 * Convert the specified range {@code token} to one or more {@link Range
 * ranges} that provide the appropriate coverage.
 * /*from www  . j  a v a 2s.  c  o m*/
 * @param token
 * @return the Ranges
 */
public static Iterable<Range<Value>> convertToRange(RangeToken token) {
    List<Range<Value>> ranges = Lists.newArrayListWithCapacity(1);
    if (token.getOperator() == Operator.EQUALS || token.getOperator() == null) { // null operator means
                                                                                 // the range token is for
                                                                                 // writing
        ranges.add(Range.singleton(token.getValues()[0]));
    } else if (token.getOperator() == Operator.NOT_EQUALS) {
        ranges.add(Range.lessThan(token.getValues()[0]));
        ranges.add(Range.greaterThan(token.getValues()[0]));
    } else if (token.getOperator() == Operator.GREATER_THAN) {
        ranges.add(Range.greaterThan(token.getValues()[0]));
    } else if (token.getOperator() == Operator.GREATER_THAN_OR_EQUALS) {
        ranges.add(Range.atLeast(token.getValues()[0]));
    } else if (token.getOperator() == Operator.LESS_THAN) {
        ranges.add(Range.lessThan(token.getValues()[0]));
    } else if (token.getOperator() == Operator.LESS_THAN_OR_EQUALS) {
        ranges.add(Range.atMost(token.getValues()[0]));
    } else if (token.getOperator() == Operator.BETWEEN) {
        Value a = token.getValues()[0];
        Value b = token.getValues()[1];
        if (a == Value.NEGATIVE_INFINITY && b == Value.POSITIVE_INFINITY) {
            ranges.add(Range.<Value>all());
        } else if (token.getValues().length == 3) {
            ranges.add(Range.open(a, b));
        } else if (token.getValues().length == 4) {
            ranges.add(Range.closed(a, b));
        } else if (token.getValues().length == 5) {
            ranges.add(Range.openClosed(a, b));
        } else {
            ranges.add(Range.closedOpen(a, b));
        }
    } else if (token.getOperator() == Operator.REGEX || token.getOperator() == Operator.NOT_REGEX) {
        ranges.add(Range.<Value>all());
    } else {
        throw new UnsupportedOperationException();
    }
    return ranges;
}

From source file:com.b2international.snowowl.snomed.datastore.internal.id.reservations.ReservationRangeImpl.java

public ReservationRangeImpl(long itemIdMin, long itemIdMax, String namespace,
        Collection<ComponentCategory> components) {
    checkArgument(components.size() >= 1, "At least one ComponentNature must be defined");
    final int minItemIdMin = Strings.isNullOrEmpty(namespace) ? 100 : 1;
    checkArgument(itemIdMin >= minItemIdMin, "ItemIdMin should be greater than or equal to %s", minItemIdMin);
    checkArgument(itemIdMax >= itemIdMin, "ItemIdMax should be greater than or equal to ItemIdMin");
    this.itemIdRange = Range.closed(itemIdMin, itemIdMax);
    this.namespace = Strings.nullToEmpty(namespace);
    this.components = components;
}