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

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

Introduction

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

Prototype

public C upperEndpoint() 

Source Link

Document

Returns the upper endpoint of this range.

Usage

From source file:org.pshdl.model.simulation.RangeTool.java

/**
 * Splits a list into ValueRange Objects that do not overlap each other, but
 * fully represent the ranges given by value
 *
 * @param value/*from   w  w  w  . java2 s  .  c o  m*/
 *            a list of RangeVal Objects that need to be split
 * @return
 */
public static SortedSet<Range<BigInteger>> split(List<RangeVal> value) {
    preSort(value);
    final SortedSet<Range<BigInteger>> res = new TreeSet<Range<BigInteger>>(
            new Comparator<Range<BigInteger>>() {
                @Override
                public int compare(Range<BigInteger> arg0, Range<BigInteger> arg1) {
                    return ComparisonChain.start() //
                            .compare(arg0.lowerEndpoint(), arg1.lowerEndpoint()) //
                            .compare(arg0.upperEndpoint(), arg1.upperEndpoint()) //
                            .result();
                }
            });
    RangeVal last = null;
    int count = 0;
    for (final RangeVal current : value) {
        if (last != null) {
            if (last.isStart()) {
                if (current.isStart()) {
                    res.add(createRange(last.value, current.value.subtract(BigInteger.ONE)));
                } else {
                    res.add(createRange(last.value, current.value));
                }
            } else {
                if (current.isStart()) {
                    if ((count > 0) && (current.value.subtract(last.value).compareTo(BigInteger.ONE) > 0)) {
                        res.add(createRange(last.value.add(BigInteger.ONE),
                                current.value.subtract(BigInteger.ONE)));
                    }
                } else {
                    res.add(createRange(last.value.add(BigInteger.ONE), current.value));
                }
            }
        } else {
            if (!current.isStart())
                throw new IllegalArgumentException("this should not happen");
        }
        count += current.count;
        last = current;
    }
    return res;
}

From source file:be.nbb.jackcess.CursorFacade.java

@Nonnull
public static CursorFacade range(@Nonnull Table table, @Nonnull Range<RowId> range) throws IOException {
    CursorFacade basic = basic(table);//from   w  w w.  j av a 2  s  . co m
    if (range.hasLowerBound()) {
        basic.moveBefore(range.lowerEndpoint());
    }
    return range.hasUpperBound() ? new UpperBounded(basic, range.upperEndpoint()) : basic;
}

From source file:org.cinchapi.concourse.server.model.Ranges.java

/**
 * Equivalent to {@link Range#upperEndpoint()} except that
 * {@link Value#POSITVE_INFINITY} is returned if the {@code range} does not
 * have a defined upper bound.//  w  ww .jav a2 s.c  o  m
 * 
 * @param range
 * @return the upper endpoint
 */
public static Value getUpperEndpoint(Range<Value> range) {
    if (!range.hasUpperBound()) {
        return Value.POSITIVE_INFINITY;
    } else {
        return range.upperEndpoint();
    }
}

From source file:com.google.android.apps.forscience.whistlepunk.NextRequestType.java

static NextRequestType compute(Range<Long> alreadyRequested, long minWanted, long maxWanted) {
    if (maxWanted < minWanted) {
        return NONE;
    } else if (alreadyRequested == null) {
        return FIRST;
    } else if (alreadyRequested.hasLowerBound() && minWanted < alreadyRequested.lowerEndpoint()) {
        return NEXT_LOWER;
    } else if (alreadyRequested.hasUpperBound() && maxWanted > alreadyRequested.upperEndpoint()) {
        return NEXT_HIGHER;
    } else {/*  ww w  .j  ava2  s  .co m*/
        return NONE;
    }
}

From source file:com.tinspx.util.base.NumberUtils.java

public static int getRandomInt(Range<Integer> range, Random random) {
    int min = range.lowerEndpoint();
    if (range.lowerBoundType() == BoundType.OPEN) {
        min++;//  ww  w.j a  v  a2  s .  c  o m
    }
    int max = range.upperEndpoint();
    if (range.upperBoundType() == BoundType.CLOSED) {
        max++;
    }
    return random.nextInt(max - min) + min;
}

From source file:org.rf.ide.core.testdata.model.table.keywords.names.EmbeddedKeywordNamesSupport.java

private static String substituteVariablesWithRegex(final String definitionName, final boolean ignoreCase) {
    final StringBuilder wholeRegex = new StringBuilder();

    final RangeSet<Integer> varRanges = findEmbeddedArgumentsRanges(definitionName);

    StringBuilder exactWordPatternRegex = new StringBuilder();
    int i = 0;/*  www  .  j av a2 s .c o  m*/
    while (i < definitionName.length()) {
        if (varRanges.contains(i)) {
            if (exactWordPatternRegex.length() > 0) {
                final String exactWordPattern = exactWordPatternRegex.toString();
                wholeRegex
                        .append(Pattern.quote(ignoreCase ? exactWordPattern.toLowerCase() : exactWordPattern));
                exactWordPatternRegex = new StringBuilder();
            }

            final Range<Integer> varRange = varRanges.rangeContaining(i);
            final String internalRegex = getEmbeddedArgumentRegex(definitionName, varRange);
            wholeRegex.append(internalRegex);
            i = varRange.upperEndpoint() + 1;
        } else {
            exactWordPatternRegex.append(definitionName.charAt(i));
            i++;
        }
    }
    if (exactWordPatternRegex.length() > 0) {
        final String exactWordPattern = exactWordPatternRegex.toString();
        wholeRegex.append(Pattern.quote(ignoreCase ? exactWordPattern.toLowerCase() : exactWordPattern));
    }
    return wholeRegex.toString();
}

From source file:com.tinspx.util.base.NumberUtils.java

@SuppressWarnings("unchecked")
public static Range<Long> toLongRange(@NonNull Range<? extends Number> range) {
    if (range.hasLowerBound()) {
        if (range.hasUpperBound()) {
            if (range.lowerEndpoint() instanceof Long && range.upperEndpoint() instanceof Long) {
                return (Range<Long>) range;
            }/*w w w. ja  va 2s  . c o m*/
            return Range.range(range.lowerEndpoint().longValue(), range.lowerBoundType(),
                    range.upperEndpoint().longValue(), range.upperBoundType());
        } else {
            if (range.lowerEndpoint() instanceof Long) {
                return (Range<Long>) range;
            }
            return Range.downTo(range.lowerEndpoint().longValue(), range.lowerBoundType());
        }
    } else if (range.hasUpperBound()) {
        if (range.upperEndpoint() instanceof Long) {
            return (Range<Long>) range;
        }
        return Range.upTo(range.upperEndpoint().longValue(), range.upperBoundType());
    } else {
        return Range.all();
    }
}

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;
    }/*w w w .j  a  va 2s. 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:com.google.errorprone.bugpatterns.javadoc.UnescapedEntity.java

private static SuggestedFix wrapInCodeTag(Range<Integer> containingPre) {
    return SuggestedFix.builder()
            .replace(containingPre.lowerEndpoint(), containingPre.lowerEndpoint(), "{@code ")
            .replace(containingPre.upperEndpoint(), containingPre.upperEndpoint(), "}").build();
}

From source file:org.dishevelled.variation.range.Ranges.java

/**
 * Return the center of the specified range.
 *
 * @param <C> range endpoint type//from w  w w  . j a  va 2 s. c o  m
 * @param range range, must not be null
 * @return the center of the specified range
 */
public static <C extends Comparable> C center(final Range<C> range) {
    checkNotNull(range);
    if (!range.hasUpperBound() && !range.hasUpperBound()) {
        throw new IllegalStateException("cannot find the center of a range without bounds");
    }
    if (!range.hasLowerBound()) {
        return range.upperEndpoint();
    }
    if (!range.hasUpperBound()) {
        return range.lowerEndpoint();
    }
    C lowerEndpoint = range.lowerEndpoint();
    C upperEndpoint = range.upperEndpoint();

    if (upperEndpoint instanceof Integer) {
        Integer upper = (Integer) upperEndpoint;
        Integer lower = (Integer) lowerEndpoint;
        return (C) Integer.valueOf((upper.intValue() + lower.intValue()) / 2);
    }
    if (upperEndpoint instanceof Long) {
        Long upper = (Long) upperEndpoint;
        Long lower = (Long) lowerEndpoint;
        return (C) Long.valueOf((upper.longValue() + lower.longValue()) / 2L);
    }
    if (upperEndpoint instanceof BigInteger) {
        BigInteger upper = (BigInteger) upperEndpoint;
        BigInteger lower = (BigInteger) lowerEndpoint;
        BigInteger two = BigInteger.valueOf(2L);
        return (C) upper.subtract(lower).divide(two);
    }

    // todo:  could potentially calculate the center of any range with a discrete domain
    throw new IllegalStateException(
            "cannot find the center of a range whose endpoint type is not Integer, Long, or BigInteger");
}