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

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

Introduction

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

Prototype

public C lowerEndpoint() 

Source Link

Document

Returns the lower endpoint of this range.

Usage

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();
    }
}