Example usage for com.google.common.collect TreeRangeSet add

List of usage examples for com.google.common.collect TreeRangeSet add

Introduction

In this page you can find the example usage for com.google.common.collect TreeRangeSet add.

Prototype

@Override
    public void add(Range<C> rangeToAdd) 

Source Link

Usage

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);
}