List of usage examples for com.google.common.collect Range upperEndpoint
public C upperEndpoint()
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"); }