List of usage examples for com.google.common.collect Range lowerEndpoint
public C lowerEndpoint()
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 a 2s .com * @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:com.google.googlejavaformat.java.Formatter.java
/** * Converts zero-indexed, [closed, open) line ranges in the given source file to character ranges. *//*from www . j a va 2 s . com*/ public static RangeSet<Integer> lineRangesToCharRanges(String input, RangeSet<Integer> lineRanges) { List<Integer> lines = new ArrayList<>(); Iterators.addAll(lines, Newlines.lineOffsetIterator(input)); lines.add(input.length() + 1); final RangeSet<Integer> characterRanges = TreeRangeSet.create(); for (Range<Integer> lineRange : lineRanges.subRangeSet(Range.closedOpen(0, lines.size() - 1)).asRanges()) { int lineStart = lines.get(lineRange.lowerEndpoint()); // Exclude the trailing newline. This isn't strictly necessary, but handling blank lines // as empty ranges is convenient. int lineEnd = lines.get(lineRange.upperEndpoint()) - 1; Range<Integer> range = Range.closedOpen(lineStart, lineEnd); characterRanges.add(range); } return characterRanges; }
From source file:org.dishevelled.bio.align.Alignments.java
/** * Return the length of the specified range. * * @param range range, must not be null and must be [closed, open) * @return the length of the specified range *///from w w w.j a v a 2s. c o m public static long length(final Range<Long> range) { checkClosedOpen(range); return Math.max(0L, range.upperEndpoint() - range.lowerEndpoint()); }
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.// ww w. j a v a 2 s. 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.google.googlejavaformat.java.StringWrapper.java
/** Applies replacements to the given string. */ private static String applyReplacements(String javaInput, TreeRangeMap<Integer, String> replacementMap) throws FormatterException { // process in descending order so the replacement ranges aren't perturbed if any replacements // differ in size from the input Map<Range<Integer>, String> ranges = replacementMap.asDescendingMapOfRanges(); if (ranges.isEmpty()) { return javaInput; }/*from www .j ava2 s . c om*/ StringBuilder sb = new StringBuilder(javaInput); for (Map.Entry<Range<Integer>, String> entry : ranges.entrySet()) { Range<Integer> range = entry.getKey(); sb.replace(range.lowerEndpoint(), range.upperEndpoint(), entry.getValue()); } return sb.toString(); }
From source file:org.apache.kylin.metadata.realization.SQLDigestUtil.java
private static TupleFilter createFilterForRealtime(TupleFilter originFilter, TblColRef partitionColRef, Range<Long> tsRange) { DataType type = partitionColRef.getColumnDesc().getType(); String startTimeStr, endTimeStr; CompareTupleFilter startFilter = null, endFilter = null; if (tsRange.hasLowerBound()) { startTimeStr = formatTimeStr(type, tsRange.lowerEndpoint()); if (tsRange.lowerBoundType() == BoundType.CLOSED) { startFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.GTE); } else {/*from w w w. ja v a2 s . c o m*/ startFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.GT); } ColumnTupleFilter columnTupleFilter = new ColumnTupleFilter(partitionColRef); ConstantTupleFilter constantTupleFilter = new ConstantTupleFilter(startTimeStr); startFilter.addChild(columnTupleFilter); startFilter.addChild(constantTupleFilter); } if (tsRange.hasUpperBound()) { endTimeStr = formatTimeStr(type, tsRange.upperEndpoint()); if (tsRange.upperBoundType() == BoundType.CLOSED) { endFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.LTE); } else { endFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.LT); } ColumnTupleFilter columnTupleFilter = new ColumnTupleFilter(partitionColRef); ConstantTupleFilter constantTupleFilter = new ConstantTupleFilter(endTimeStr); endFilter.addChild(columnTupleFilter); endFilter.addChild(constantTupleFilter); } if (originFilter == null) { if (endFilter == null) { return startFilter; } if (startFilter == null) { return endFilter; } } LogicalTupleFilter logicalTupleFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); if (originFilter != null) { logicalTupleFilter.addChild(originFilter); } if (startFilter != null) { logicalTupleFilter.addChild(startFilter); } if (endFilter != null) { logicalTupleFilter.addChild(endFilter); } return logicalTupleFilter; }
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()); }//from ww w . j a v a2 s .co m throw new AssertionError(); }
From source file:net.bican.iplib.IPAddresses.java
/** * transforms the range to CIDR notation, if any is possible * * @param range//from w w w .ja va2s . c o m * the range to transform * @return transformed CIDR range */ public static CIDR toCIDR(final Range<IPAddress> range) { Preconditions.checkNotNull(range, "range cannot be null"); //$NON-NLS-1$ if (range.isEmpty()) { return null; } int prefix = 0; final LongDiscreteDomain<IPAddress> domain = range.lowerEndpoint().getDomain(); final Range<IPAddress> addrRange = IPAddresses.canonical(range, domain); while (prefix <= domain.maxPrefix()) { final CIDR cidr = new CIDR(addrRange.lowerEndpoint(), prefix); final Range<IPAddress> a = IPAddresses.fromCIDR(cidr); if (a.equals(addrRange)) { return cidr; } prefix++; } return null; }
From source file:ec.util.grid.swing.ext.TableGridCommand.java
private static Table<?> copy2(GridModel model, Range<Integer> r, Range<Integer> c, boolean rowHeader, boolean columnHeader) { if (model.getRowCount() == 0 || model.getColumnCount() == 0) { return new Table<>(0, 0); }//from ww w . j ava2 s . c o m int firstRow = r.hasLowerBound() ? (r.lowerBoundType().equals(BoundType.CLOSED) ? r.lowerEndpoint() : (r.lowerEndpoint() + 1)) : 0; int lastRow = r.hasUpperBound() ? (r.upperBoundType().equals(BoundType.CLOSED) ? r.upperEndpoint() : (r.upperEndpoint() - 1)) : (model.getRowCount() - 1); int firstColumn = c.hasLowerBound() ? (c.lowerBoundType().equals(BoundType.CLOSED) ? c.lowerEndpoint() : (c.lowerEndpoint() + 1)) : 0; int lastColumn = c.hasUpperBound() ? (c.upperBoundType().equals(BoundType.CLOSED) ? c.upperEndpoint() : (c.upperEndpoint() - 1)) : (model.getColumnCount() - 1); return copy(model, firstRow, firstColumn, lastRow, lastColumn, rowHeader, columnHeader); }
From source file:com.tinspx.util.base.NumberUtils.java
@SuppressWarnings("rawtypes") public static <F extends Comparable, T extends Comparable> Range<T> transform(@NonNull Range<F> range, @NonNull Function<? super F, ? extends T> function) { if (range.hasLowerBound()) { if (range.hasUpperBound()) { return Range.range(function.apply(range.lowerEndpoint()), range.lowerBoundType(), function.apply(range.upperEndpoint()), range.upperBoundType()); } else {// w w w.java 2 s .c o m return Range.downTo(function.apply(range.lowerEndpoint()), range.lowerBoundType()); } } else if (range.hasUpperBound()) { return Range.upTo(function.apply(range.upperEndpoint()), range.upperBoundType()); } else { return Range.all(); } }