List of usage examples for com.google.common.collect TreeRangeSet add
@Override public void add(Range<C> rangeToAdd)
From source file:org.apache.calcite.adapter.druid.DruidDateTimeUtils.java
/** * Generates a list of {@link LocalInterval}s equivalent to a given * expression. Assumes that all the predicates in the input * reference a single column: the timestamp column. *//*from w w w . j a v a 2s . c o m*/ public static List<LocalInterval> createInterval(RelDataType type, RexNode e) { final List<Range<Calendar>> ranges = extractRanges(e, false); if (ranges == null) { // We did not succeed, bail out return null; } final TreeRangeSet condensedRanges = TreeRangeSet.create(); for (Range r : ranges) { condensedRanges.add(r); } if (LOGGER.isDebugEnabled()) { LOGGER.debug("Inferred ranges on interval : " + condensedRanges); } return toInterval(ImmutableList.<Range>copyOf(condensedRanges.asRanges())); }
From source file:org.apache.lens.server.api.driver.hooks.QueryCostBasedQueryHook.java
public RangeSet<T> parseAllowedRangeSet(String rangeStr) { RangeSet<T> parsed = parseRangeSet(rangeStr); if (parsed == null) { TreeRangeSet<T> set = TreeRangeSet.create(); set.add(Range.<T>all()); return set; } else {/*from w ww . ja va2s .c om*/ return parsed; } }
From source file:org.mskcc.shenkers.view.StackedIntervalView.java
public void setData(List<Pair<Integer, Integer>> intervals) { Collections.sort(intervals, new Comparator<Pair<Integer, Integer>>() { @Override/*from w ww . j ava 2 s .c o m*/ public int compare(Pair<Integer, Integer> o1, Pair<Integer, Integer> o2) { return o1.getKey() - o2.getKey(); } }); // Pair<Integer, Integer> r = intervals.get(0); for (Pair<Integer, Integer> interval : intervals) { Range<Integer> range = Range.closed(interval.getKey(), interval.getValue()); int i = 0; added: { // add the interval to the first row that doesn't intersect with while (i < rows.size()) { TreeRangeSet<Integer> set = rows.get(i); RangeSet<Integer> intersection = set.subRangeSet( Range.closed(interval.getKey() - minSpace, interval.getValue() + minSpace)); if (intersection.isEmpty()) { set.add(range); break added; } i++; } TreeRangeSet<Integer> row = TreeRangeSet.create(); row.add(range); rows.add(row); } } List<Node> content = new ArrayList<>(); for (RangeSet<Integer> row : rows) { RangeSetIntervalView rowView = new RangeSetIntervalView(min, max); rowView.setData(row); content.add(rowView); } getChildren().setAll(content); }
From source file:org.mskcc.shenkers.view.GenericStackedIntervalView.java
public void setData(List<Pair<Integer, Integer>> intervals, List<T> content) { rows.clear();// ww w . ja va 2 s . com rowNodes.clear(); rows.add(TreeRangeSet.create()); rowNodes.add(new ArrayList<>()); List<IntervalNode<T>> nodes = Stream.iterate(0, i -> i + 1).limit(intervals.size()) .map(i -> new IntervalNode<T>(intervals.get(i), content.get(i))).collect(Collectors.toList()); Collections.sort(nodes, new Comparator<IntervalNode<T>>() { @Override public int compare(IntervalNode<T> o1, IntervalNode<T> o2) { return o1.interval.getKey() - o2.interval.getKey(); } }); for (IntervalNode inode : nodes) { Pair<Integer, Integer> interval = inode.interval; Range<Integer> range = Range.closed(interval.getKey(), interval.getValue()); logger.info("stacking {}", interval); int i = 0; added: { // add the interval to the first row that doesn't intersect with while (i < rows.size()) { TreeRangeSet<Integer> set = rows.get(i); List<IntervalNode<T>> rowContent = rowNodes.get(i); RangeSet<Integer> intersection = set.subRangeSet( Range.closed(interval.getKey() - minSpace, interval.getValue() + minSpace)); if (intersection.isEmpty()) { set.add(range); rowContent.add(inode); logger.info("no intersections in row {}", i); break added; } logger.info("intersects in row {} {}", i, set); i++; } TreeRangeSet<Integer> row = TreeRangeSet.create(); row.add(range); rows.add(row); List<IntervalNode<T>> rowContent = new ArrayList<>(); rowContent.add(inode); rowNodes.add(rowContent); } } // { // Rectangle background = new Rectangle(); // background.setFill(Color.WHITE); // background.widthProperty().bind(widthProperty()); // background.heightProperty().bind(heightProperty()); // getChildren().add(background); // } List<T> children = new ArrayList<>(); for (List<IntervalNode<T>> row : rowNodes) { GenericIntervalView<T> rowView = new GenericIntervalView<>(min, max); List<Pair<Integer, Integer>> rowIntervals = new ArrayList<>(row.size()); List<T> rowContent = new ArrayList<>(row.size()); row.stream().forEach(i -> { rowIntervals.add(i.interval); rowContent.add(i.content); }); rowView.setData(rowIntervals, rowContent); rowView.flipDomainProperty().bind(flipDomain); children.add((T) rowView); } getChildren().addAll(children); }
From source file:org.eclipse.fx.ui.controls.styledtext.skin.StyledTextSkin.java
public void refreshStyles(int start, int length) { int startLine = getSkinnable().getContent().getLineAtOffset(start); int endLine = getSkinnable().getContent().getLineAtOffset(start + length); TreeRangeSet<Integer> set = TreeRangeSet.create(); set.add(Range.closed(startLine, endLine)); this.content.updatelines(set); }