Example usage for com.google.common.collect Range lowerEndpoint

List of usage examples for com.google.common.collect Range lowerEndpoint

Introduction

In this page you can find the example usage for com.google.common.collect Range lowerEndpoint.

Prototype

public C lowerEndpoint() 

Source Link

Document

Returns the lower endpoint of this range.

Usage

From source file:utils.CreateFromSelection.java

@Override
public void actionPerformed(ActionEvent e) {
    CoolMapObject obj = CoolMapMaster.getActiveCoolMapObject();
    if (obj == null) {
        CMConsole.logWarning("No active coolmap in view. Create new view aborted");
        return;/* www  .  jav  a 2  s. c om*/
    }

    CoolMapView view = obj.getCoolMapView();
    ArrayList<Range<Integer>> selectedRows = view.getSelectedRows();
    ArrayList<Range<Integer>> selectedColumns = view.getSelectedColumns();

    if (selectedRows.isEmpty() || selectedColumns.isEmpty()) {
        CMConsole.logWarning("No region(s) were selected in view. Create new view aborted");
        return;
    }

    ArrayList<VNode> newRowNodes = new ArrayList<VNode>();
    ArrayList<VNode> newColumnNodes = new ArrayList<VNode>();

    for (Range<Integer> range : selectedRows) {
        for (int i = range.lowerEndpoint(); i < range.upperEndpoint(); i++) {
            newRowNodes.add(obj.getViewNodeRow(i).duplicate());
        }
    }

    for (Range<Integer> range : selectedColumns) {
        for (int i = range.lowerEndpoint(); i < range.upperEndpoint(); i++) {
            newColumnNodes.add(obj.getViewNodeColumn(i).duplicate());
        }
    }

    CoolMapObject newObject = new CoolMapObject();
    List<CMatrix> baseCMatrices = obj.getBaseCMatrices();
    for (CMatrix mx : baseCMatrices) {
        newObject.addBaseCMatrix(mx);
    }

    newObject.insertRowNodes(newRowNodes);
    newObject.insertColumnNodes(newColumnNodes);

    if (obj.getAggregator() != null) {
        try {
            CAggregator aggr = (CAggregator) (obj.getAggregator().getClass().newInstance());
            aggr.restoreState(obj.getAggregator().getCurrentState());
            newObject.setAggregator(aggr);
        } catch (Exception ex) {
            CMConsole.logWarning(
                    "Could not initialize aggregator " + obj.getAggregator() + ", using default instead.");
            newObject.setAggregator(new PassThrough());
        }
    } else {
        newObject.setAggregator(new PassThrough());
    }

    if (obj.getViewRenderer() != null) {
        try {
            ViewRenderer renderer = (ViewRenderer) (obj.getViewRenderer().getClass().newInstance());
            newObject.setViewRenderer(renderer, true);
            //                System.out.println("Current state:" + obj.getViewRenderer().getCurrentState());
            renderer.restoreState(obj.getViewRenderer().getCurrentState());

        } catch (Exception ex) {
            CMConsole.logWarning(
                    "Could not initialize aggregator " + obj.getAggregator() + ", using default instead.");
            newObject.setViewRenderer(new TextRenderer(), true);
        }

    } else {
        newObject.setViewRenderer(new TextRenderer(), true);
    }

    if (obj.getSnippetConverter() != null) {
        try {
            SnippetConverter convert = obj.getSnippetConverter().getClass().newInstance();
            convert.restoreState(obj.getSnippetConverter().getCurrentState());
            newObject.setSnippetConverter(convert);
        } catch (Exception ex) {
            //do nothing
        }
    }

    //newObject
    newObject.getCoolMapView().addColumnMap(new ColumnLabels(newObject));
    newObject.getCoolMapView().addColumnMap(new ColumnTree(newObject));
    newObject.getCoolMapView().addRowMap(new RowLabels(newObject));
    newObject.getCoolMapView().addRowMap(new RowTree(newObject));

    newObject.setName(obj.getName() + " subregion");

    CoolMapMaster.addNewCoolMapObject(newObject);

}

From source file:com.yahoo.gondola.container.BucketManager.java

private void validateBucketMap() {
    List<Range<Integer>> sortedRange = bucketMap.asMapOfRanges().keySet().stream()
            .sorted((o1, o2) -> o1.lowerEndpoint() > o2.lowerEndpoint() ? 1 : -1).collect(Collectors.toList());
    Range<Integer> prev = null;
    for (Range<Integer> range : sortedRange) {
        if (prev != null && (range.lowerEndpoint() - 1) != prev.upperEndpoint()) {
            throw new IllegalStateException(String.format("Range must be contiguous. %s -> %s", prev, range));
        } else if (prev == null && range.lowerEndpoint() != 0) {
            throw new IllegalStateException("Range must start from 0");
        }//from  w  w w .  java  2s  .c o m
        prev = range;
    }
    if (numberOfBuckets == 0) {
        throw new IllegalStateException("Number of bucket must not be 0");
    }
}

From source file:coolmapplugin.actions.MapSelectedToCytoscapeWithAggregatedValue.java

private HashMap<String, Double> getSelectedColumnAndRowNamesAndAggregatedValues(
        AggregationType aggregationType) {
    try {// w  w w .  j  ava  2 s.c o  m

        CoolMapObject obj = CoolMapMaster.getActiveCoolMapObject();
        CoolMapView coolMapView = obj.getCoolMapView();

        List<Range<Integer>> columnList = coolMapView.getSelectedColumns();
        List<Range<Integer>> rowList = coolMapView.getSelectedRows();
        HashMap<String, Double> nameValueHashMap = new HashMap<>();

        for (Range<Integer> rangeColumn : columnList) {
            for (int i = rangeColumn.lowerEndpoint(); i < rangeColumn.upperEndpoint(); ++i) {
                String columnName = obj.getViewNodeColumn(i).getName();
                LinkedList<Double> values = new LinkedList<>();
                for (Range<Integer> rangeRow : rowList) {
                    for (int j = rangeRow.lowerEndpoint(); j < rangeRow.upperEndpoint(); ++j) {
                        Double value = (Double) obj.getViewValue(j, i);
                        if (value == null) {
                            continue;
                        }
                        values.add(value);
                    }
                }

                Double aggregatedValue = getAggregatedValue(values, aggregationType);
                nameValueHashMap.put(columnName, aggregatedValue);
            }
        }

        for (Range<Integer> rangeRow : rowList) {
            for (int i = rangeRow.lowerEndpoint(); i < rangeRow.upperEndpoint(); ++i) {
                String rowName = obj.getViewNodeRow(i).getName();
                LinkedList<Double> values = new LinkedList<>();
                for (Range<Integer> rangeColumn : columnList) {
                    for (int j = rangeColumn.lowerEndpoint(); j < rangeColumn.upperEndpoint(); ++j) {
                        Double value = (Double) obj.getViewValue(i, j);
                        if (value == null) {
                            continue;
                        }
                        values.add(value);
                    }
                }

                Double aggregatedValue = getAggregatedValue(values, aggregationType);
                nameValueHashMap.put(rowName, aggregatedValue);
            }
        }

        return nameValueHashMap;
    } catch (Exception e) {
        CMConsole.logError("Failed to get selected columns and rows. Internal Error : " + e.getMessage());
    }
    return null;

}

From source file:net.sf.mzmine.modules.peaklistmethods.identification.onlinedbsearch.databases.YMDBGateway.java

public String[] findCompounds(double mass, MZTolerance mzTolerance, int numOfResults, ParameterSet parameters)
        throws IOException {

    Range<Double> toleranceRange = mzTolerance.getToleranceRange(mass);

    String queryAddress = ymdbSeachAddress + "query_from=" + toleranceRange.lowerEndpoint() + "&query_to="
            + toleranceRange.upperEndpoint();

    URL queryURL = new URL(queryAddress);

    // Submit the query
    String queryResult = InetUtils.retrieveData(queryURL);

    // Organize the IDs as a TreeSet to keep them sorted
    TreeSet<String> results = new TreeSet<String>();

    // Find IDs in the HTML data
    Pattern pat = Pattern.compile("/compounds/(YMDB[0-9]{5})");
    Matcher matcher = pat.matcher(queryResult);
    while (matcher.find()) {
        String ymdbID = matcher.group(1);
        results.add(ymdbID);//from   w ww  . j  av a2 s  .c  o  m
    }

    // Remove all except first numOfResults IDs. The reason why we first
    // retrieve all results and then remove those above numOfResults is to
    // keep the lowest YDMB IDs - these may be the most interesting ones.
    while (results.size() > numOfResults) {
        String lastItem = results.last();
        results.remove(lastItem);
    }

    return results.toArray(new String[0]);

}

From source file:com.github.parboiled1.grappa.backport.buffers.CharSequenceInputBuffer.java

@Override
public String extractLine(final int lineNumber) {
    Preconditions.checkArgument(lineNumber > 0, "line number is negative");
    final LineCounter counter = Futures.getUnchecked(lineCounter);
    final Range<Integer> range = counter.getLineRange(lineNumber);
    final int start = range.lowerEndpoint();
    int end = range.upperEndpoint();
    if (charAt(end - 1) == '\n')
        end--;/*from w w w  .ja  va 2 s  . c  om*/
    if (charAt(end - 1) == '\r')
        end--;
    return extract(start, end);
}

From source file:org.amelia.dsl.lib.util.PairMatcher.java

public List<Range<Integer>> redundantRegions() {
    if (this.regions == null)
        calculateRegions();/*from w  ww  .  j  av a  2s.  c  o  m*/
    Collections.sort(this.regions, ascendent);
    List<Range<Integer>> redundantRegions = new ArrayList<Range<Integer>>();
    for (int i = 0; i < this.regions.size(); i++) {
        Range<Integer> r1 = this.regions.get(i);
        for (Range<Integer> r2 : this.regions.subList(i + 1, this.regions.size())) {
            if (r1.lowerEndpoint() <= r2.lowerEndpoint() && r1.upperEndpoint() >= r2.upperEndpoint()) {
                redundantRegions.add(r2);
            }
        }
    }
    Collections.sort(this.regions, descendent);
    return redundantRegions;
}

From source file:li.klass.fhem.activities.graph.YAxis.java

public YAxis(Context context, GPlotAxis axis, String label) {
    this.context = context;
    this.label = label;

    Range<Double> range = axis.getRange().or(Range.range(-1d, BoundType.OPEN, 1d, BoundType.OPEN));
    if (range.hasLowerBound()) {
        minimumY = range.lowerEndpoint();
    }//from w  ww. j a v a 2 s.  co  m
    if (range.hasUpperBound()) {
        maximumY = range.upperEndpoint();
    }
}

From source file:org.mskcc.shenkers.view.RangeMapHistogramView.java

private double[] scaleDomain(Range<Integer> i, int lb, double r, double width, boolean flip) {
    double s = (i.lowerEndpoint().doubleValue() - lb) / r;
    double e = (i.upperEndpoint().doubleValue() - lb + 1) / r;

    double flippedS = flip ? (1 - s) : s;
    double flippedE = flip ? (1 - e) : e;

    double scaledS = flippedS * width;
    double scaledE = flippedE * width;

    return new double[] { scaledS, scaledE };
}

From source file:com.techshroom.wood.ModuleDependency.java

@Override
public String toString() {
    StringBuilder builder = new StringBuilder(getId()).append(':');
    Range<SemVer> r = getVersionRange();
    if (r.hasLowerBound()) {
        builder.append(r.lowerBoundType() == BoundType.OPEN ? '(' : '[').append(r.lowerEndpoint());
    } else {/*from www. j a v a 2  s  .co  m*/
        builder.append('(');
    }
    builder.append(',');
    if (r.hasUpperBound()) {
        builder.append(r.upperEndpoint()).append(r.upperBoundType() == BoundType.OPEN ? ')' : ']');
    } else {
        builder.append(')');
    }
    return builder.toString();
}

From source file:org.pascani.dsl.dbmapper.databases.ElasticSearch.java

private Map<String, String> toData(ChangeEvent e, Serializable value, Map<String, String> tags) {
    Map<String, String> data = new HashMap<String, String>();
    renameTags(tags, "value", "start", "end", "timestamp");
    data.putAll(tags);//from ww w.j a v  a 2s.com
    if (value instanceof Range<?>) {
        Range<?> range = (Range<?>) value;
        Number start = (Number) range.lowerEndpoint();
        Number end = (Number) range.upperEndpoint();
        data.put("start", start + "");
        data.put("end", end + "");
        data.put("value", (end.doubleValue() - start.doubleValue()) + "");
    } else if (value instanceof Number) {
        data.put("value", (Number) value + "");
    } else if (value instanceof Boolean) {
        data.put("value", (Boolean) value + "");
    } else if (value instanceof String) {
        data.put("value", (String) value);
    }
    data.put("timestamp", e.timestamp() + "");
    return data;
}