List of usage examples for com.google.common.collect Range closed
public static <C extends Comparable<?>> Range<C> closed(C lower, C upper)
From source file:org.dishevelled.bio.range.rtree.RangeGeometries.java
/** * Create and return a new rectangle geometry from the specified closed range <code>[lower..upper]</code>. * * @param <N> value type// w w w .j ava 2 s.c om * @param lower lower endpoint, must not be null * @param upper upper endpoint, must not be null * @return a new rectangle geometry from the specified closed range */ public static <N extends Number & Comparable<? super N>> Rectangle closed(final N lower, final N upper) { checkNotNull(lower); checkNotNull(upper); return range(Range.closed(lower, upper)); }
From source file:net.sf.mzmine.util.components.RangeComponent.java
/** * @return Returns the current values/*from w ww .j a va 2s . c o m*/ */ public Range<Double> getRangeValue() { double minValue = ((Number) minTxtField.getValue()).doubleValue(); double maxValue = ((Number) maxTxtField.getValue()).doubleValue(); return Range.closed(minValue, maxValue); }
From source file:org.mskcc.juber.intervals.IntervalNameMap.java
public List<String> getIntersecting(String contig, int start, int end) { List<String> nameList = new ArrayList<String>(); Range<Integer> range = Range.closed(start, end); // get the contig-specific list of range maps List<TreeRangeMap<Integer, String>> contigRanges = contigIntervals.get(contig); if (contigRanges == null) { return nameList; }/*from w w w. j ava 2s . com*/ // check each map in the list for intersection for (int i = 0; i < contigRanges.size(); i++) { TreeRangeMap<Integer, String> map = contigRanges.get(i); Map<Range<Integer>, String> intersecting = map.subRangeMap(range).asMapOfRanges(); // add all intersecting ranges from the current map to the return // list for (Range<Integer> key : intersecting.keySet()) { nameList.add(intersecting.get(key)); } } return nameList; }
From source file:org.mskcc.shenkers.view.RangeSetIntervalView.java
public void setData(RangeSet<Integer> intervals) { for (Range<Integer> interval : intervals.asRanges()) { Range<Double> r = Range.closed((interval.lowerEndpoint() - min + 0.) / length, (interval.upperEndpoint() - min + 1.) / length); logger.info("range {}", r); ranges.add(r);//from w w w .j a v a 2s.c o m } List<Node> content = new ArrayList<>(); for (Range<Double> interval : ranges.subRangeSet(Range.closed(0., 1.)).asRanges()) { Rectangle rectangle = new Rectangle(); rectangle.widthProperty() .bind(widthProperty().multiply(interval.upperEndpoint() - interval.lowerEndpoint())); rectangle.heightProperty().bind(heightProperty()); rectangle.xProperty().bind(widthProperty().multiply(interval.lowerEndpoint())); content.add(rectangle); } getChildren().setAll(content); }
From source file:org.sonatype.nexus.repository.http.RangeParser.java
/** * Returns a list of {@link Range}s, each indicating a range of byte indices (inclusive). * * Range: bytes=0-10 (from byte 0 to byte 10) * Range: bytes=500-999 (from byte 500 to byte 999) * Range: bytes=500- (from byte 500 to the end) * Range: bytes=-500 (the last 500 bytes, per the RFC) * * @return {@code null} if the requested range cannot be satisfied given the size of the content, or an empty list in * the case of parsing errors/*www . j av a2 s. c om*/ */ public List<Range<Long>> parseRangeSpec(final String rangeHeader, long size) { Range<Long> content = Range.closed(0L, size - 1L); // TODO: Current limitation: only one Range of bytes supported in forms of "-X", "X-Y" (where X<Y) and "X-". if (!Strings.isNullOrEmpty(rangeHeader)) { try { if (rangeHeader.startsWith("bytes=") && rangeHeader.length() > 6 && !rangeHeader.contains(",")) { final String rangeSpec = rangeHeader.substring(6, rangeHeader.length()); if (rangeSpec.startsWith("-")) { final long byteCount = Long.parseLong(rangeSpec.substring(1)); if (byteCount > size) { return UNSATISFIABLE; } final Range<Long> suffix = Range.atLeast(size - byteCount); return ensureSatisfiable(suffix, content); } else if (rangeSpec.endsWith("-")) { final Range<Long> requested = Range .atLeast(Long.parseLong(rangeSpec.substring(0, rangeSpec.length() - 1))); return ensureSatisfiable(requested, content); } else if (rangeSpec.contains("-")) { final String[] parts = rangeSpec.split("-"); return ensureSatisfiable(Range.closed(Long.parseLong(parts[0]), Long.parseLong(parts[1])), content); } else { log.warn("Malformed HTTP Range value: {}, ignoring it", rangeHeader); } } else { log.warn("Unsupported non-byte or multiple HTTP Ranges: {}; sending complete content", rangeHeader); } } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem parsing Range value: {}, ignoring", rangeHeader, e); } else { log.warn("Problem parsing Range value: {}, ignoring: {}", rangeHeader, e.toString()); } } } return WHOLE_RANGE; }
From source file:org.sonatype.nexus.repository.partial.RangeParser.java
/** * Returns a list of {@link Range}s, each indicating a range of byte indices (inclusive). * * Range: bytes=0-10 (from byte 0 to byte 10) * Range: bytes=500-999 (from byte 500 to byte 999) * Range: bytes=500- (from byte 500 to the end) * Range: bytes=-500 (the last 500 bytes, per the RFC) * * @return {@code null} if the requested range cannot be satisfied given the size of the content, or an empty list in * the case of parsing errors/*from w ww. j a va2 s .c o m*/ */ public List<Range<Long>> parseRangeSpec(final String rangeHeader, long size) { Range content = Range.closed(0L, size - 1L); // TODO: Current limitation: only one Range of bytes supported in forms of "-X", "X-Y" (where X<Y) and "X-". if (!Strings.isNullOrEmpty(rangeHeader)) { try { if (rangeHeader.startsWith("bytes=") && rangeHeader.length() > 6 && !rangeHeader.contains(",")) { final String rangeSpec = rangeHeader.substring(6, rangeHeader.length()); if (rangeSpec.startsWith("-")) { final long byteCount = Long.parseLong(rangeSpec.substring(1)); if (byteCount > size) { return UNSATISFIABLE; } final Range<Long> suffix = Range.atLeast(size - byteCount); return ensureSatisfiable(suffix, content); } else if (rangeSpec.endsWith("-")) { final Range<Long> requested = Range .atLeast(Long.parseLong(rangeSpec.substring(0, rangeSpec.length() - 1))); return ensureSatisfiable(requested, content); } else if (rangeSpec.contains("-")) { final String[] parts = rangeSpec.split("-"); return ensureSatisfiable(Range.closed(Long.parseLong(parts[0]), Long.parseLong(parts[1])), content); } else { log.warn("Malformed HTTP Range value: {}, ignoring it", rangeHeader); } } else { log.warn( "Nexus does not support non-byte or multiple HTTP Ranges, sending complete content: Range value {}", rangeHeader); } } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("Problem parsing Range value: {}, ignoring it", rangeHeader, e); } else { log.info("Problem parsing Range value: {}, ignoring it", rangeHeader); } } } return WHOLE_RANGE; }
From source file:net.sf.mzmine.parameters.parametertypes.tolerances.MZTolerance.java
public Range<Double> getToleranceRange(final double mzValue) { final double absoluteTolerance = getMzToleranceForMass(mzValue); return Range.closed(mzValue - absoluteTolerance, mzValue + absoluteTolerance); }
From source file:org.robotframework.ide.eclipse.main.plugin.project.build.validation.MockReporter.java
@Override public void handleProblem(final RobotProblem problem, final IFile file, final RobotToken token) { final ProblemPosition position = new ProblemPosition(token.getLineNumber(), Range.closed(token.getStartOffset(), token.getStartOffset() + token.getText().length())); handleProblem(problem, file, position, new HashMap<String, Object>()); }
From source file:org.apache.aurora.scheduler.base.Numbers.java
/** * Converts a set of integers into a set of contiguous closed ranges that equally represent the * input integers.//from w w w. j a v a 2s. c o m * <p> * The resulting ranges will be in ascending order. * <p> * TODO(wfarner): Change this to return a canonicalized RangeSet. * * @param values Values to transform to ranges. * @return Closed ranges with identical members to the input set. */ public static Set<Range<Integer>> toRanges(Iterable<Integer> values) { ImmutableSet.Builder<Range<Integer>> builder = ImmutableSet.builder(); PeekingIterator<Integer> iterator = Iterators.peekingIterator(Sets.newTreeSet(values).iterator()); // Build ranges until there are no numbers left. while (iterator.hasNext()) { // Start a new range. int start = iterator.next(); int end = start; // Increment the end until the range is non-contiguous. while (iterator.hasNext() && iterator.peek() == end + 1) { end++; iterator.next(); } builder.add(Range.closed(start, end)); } return builder.build(); }
From source file:org.mskcc.shenkers.view.GeneViewBuilder.java
public T getView(int start, int end) { GenericIntervalView<T> giv = new GenericIntervalView<>(gene.lowerEndpoint(), gene.upperEndpoint()); List<Pair<Integer, Integer>> ranges = new ArrayList<>(); List<T> panes = new ArrayList<>(); for (Range<Integer> r : codingSubset.subRangeSet(Range.closed(start, end)).asRanges()) { ranges.add(new Pair<>(r.lowerEndpoint(), r.upperEndpoint())); panes.add((T) new GenePartIntervalNode<T>(1., (T) new RectangleIntervalNode())); }/* w w w. java2 s.c om*/ for (Range<Integer> r : untranslated.subRangeSet(Range.closed(start, end)).asRanges()) { ranges.add(new Pair<>(r.lowerEndpoint(), r.upperEndpoint())); panes.add((T) new GenePartIntervalNode<T>(.5, (T) new RectangleIntervalNode())); } for (Range<Integer> r : introns.subRangeSet(Range.closed(start, end)).asRanges()) { ranges.add(new Pair<>(r.lowerEndpoint(), r.upperEndpoint())); panes.add((T) new GenePartIntervalNode<T>(.1, (T) new RectangleIntervalNode())); } giv.setData(ranges, panes); return (T) giv; }