List of usage examples for com.google.common.collect Range closed
public static <C extends Comparable<?>> Range<C> closed(C lower, C upper)
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; }