List of usage examples for com.google.common.collect Range lowerEndpoint
public C lowerEndpoint()
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. jav a2 s .com*/ * 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:org.nmdp.ngs.range.Ranges.java
/** * Return an ordering by lower endpoint over ranges. * * @param <C> range endpoint type/*w ww . ja va 2 s . com*/ * @return an ordering by lower endpoint over ranges */ public static <C extends Comparable> Ordering<Range<C>> orderingByLowerEndpoint() { return new Ordering<Range<C>>() { @Override public int compare(final Range<C> left, final Range<C> right) { return ComparisonChain.start().compare(left.hasLowerBound(), right.hasLowerBound()) .compare(left.lowerEndpoint(), right.lowerEndpoint()).result(); } }; }
From source file:org.learningu.scheduling.util.bst.GeneralRange.java
/** * Converts a Range to a GeneralRange.// ww w . ja v a 2 s.c o m */ @SuppressWarnings("rawtypes") static <T extends Comparable> GeneralRange<T> from(Range<T> range) { @Nullable T lowerEndpoint = range.hasLowerBound() ? range.lowerEndpoint() : null; BoundType lowerBoundType = range.hasLowerBound() ? range.lowerBoundType() : OPEN; @Nullable T upperEndpoint = range.hasUpperBound() ? range.upperEndpoint() : null; BoundType upperBoundType = range.hasUpperBound() ? range.upperBoundType() : OPEN; return new GeneralRange<T>(Ordering.natural(), range.hasLowerBound(), lowerEndpoint, lowerBoundType, range.hasUpperBound(), upperEndpoint, upperBoundType); }
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.robotframework.ide.eclipse.main.plugin.project.build.validation.KeywordCallArgumentsValidator.java
private static String getRangesInfo(final Range<Integer> range) { final int minArgs = range.lowerEndpoint(); if (!range.hasUpperBound()) { return "at least " + minArgs + " " + toPluralIfNeeded("argument", minArgs); } else if (range.lowerEndpoint().equals(range.upperEndpoint())) { return minArgs + " " + toPluralIfNeeded("argument", minArgs); } else {// ww w . j av a2s .co m final int maxArgs = range.upperEndpoint(); return "from " + minArgs + " to " + maxArgs + " arguments"; } }
From source file:net.bican.iplib.IPAddresses.java
private static Set<Range<IPAddress>> findOneConnected(final Set<Range<IPAddress>> intervals) { Range<IPAddress> f1 = null;/*from w w w . j a v a 2 s .co m*/ Range<IPAddress> f2 = null; for (final Range<IPAddress> s : intervals) { for (final Range<IPAddress> s2 : intervals) { final Range<IPAddress> sc = IPAddresses.canonical(s, s.lowerEndpoint().getDomain()); final Range<IPAddress> sc2 = IPAddresses.canonical(s, s2.lowerEndpoint().getDomain()); if ((sc.equals(sc2)) || (s.isConnected(s2))) { f1 = s; f2 = s2; break; } } if (f1 != null) { break; } } if (f1 != null) { final Set<Range<IPAddress>> newIntervals = new TreeSet<>(IPAddressRangeComparator.getComparator()); newIntervals.addAll(intervals); final Range<IPAddress> f = f1.span(f2); newIntervals.remove(f1); newIntervals.remove(f2); newIntervals.add(f); return newIntervals; } return intervals; }
From source file:org.dishevelled.bio.align.Alignments.java
/** * Return the start/lower endpoints in the specified ranges. * * @param ranges ranges, must not be null, must not contain any null ranges, and all ranges must be [closed, open) * @return the start/lower endpoints in the specified ranges *///from w w w . j a v a 2 s . co m public static List<Long> starts(final Iterable<Range<Long>> ranges) { List<Long> starts = new ArrayList<Long>(); for (Range<Long> range : ranges) { checkClosedOpen(range); starts.add(range.lowerEndpoint()); } return starts; }
From source file:net.sf.mzmine.util.XMLUtils.java
public static void appendRange(Element xmlElement, String tagName, Range<?> range) { if (range == null) return;// w ww .j a v a 2s . c om Document parentDocument = xmlElement.getOwnerDocument(); Element newElement = parentDocument.createElement(tagName); Element minElement = parentDocument.createElement("min"); minElement.setTextContent(String.valueOf(range.lowerEndpoint())); newElement.appendChild(minElement); Element maxElement = parentDocument.createElement("max"); maxElement.setTextContent(String.valueOf(range.upperEndpoint())); newElement.appendChild(maxElement); xmlElement.appendChild(newElement); }
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; }//from w w w . j av a 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:net.bican.iplib.IPAddresses.java
private static Set<Range<IPAddress>> fromConnectedInterval(final Range<IPAddress> interval) { if (interval.isEmpty()) { return null; }//from w w w. j av a2 s . c o m int prefix = 0; final LongDiscreteDomain<IPAddress> domain = interval.lowerEndpoint().getDomain(); while (prefix <= domain.maxPrefix()) { final Range<IPAddress> thisRange = IPAddresses.canonical(interval, domain); final Range<IPAddress> otherRange = IPAddresses.fromCIDR(new CIDR(thisRange.lowerEndpoint(), prefix)); if (thisRange.equals(otherRange)) { TreeSet<Range<IPAddress>> result = new TreeSet<>(IPAddressRangeComparator.getComparator()); result.add(otherRange); return result; } else if (thisRange.encloses(otherRange)) { final Set<Range<IPAddress>> result = new TreeSet<>(IPAddressRangeComparator.getComparator()); result.add(otherRange); Range<IPAddress> newRange1 = Range.closedOpen(thisRange.lowerEndpoint(), otherRange.lowerEndpoint()); Range<IPAddress> newRange2 = Range.openClosed(otherRange.upperEndpoint(), thisRange.upperEndpoint()); final Set<Range<IPAddress>> results1 = IPAddresses.fromConnectedInterval(newRange1); if (results1 != null) { result.addAll(results1); } final Set<Range<IPAddress>> results2 = IPAddresses.fromConnectedInterval(newRange2); if (results2 != null) { result.addAll(results2); } return result; } prefix++; } return new TreeSet<>(Collections.singleton(interval)); }