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

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

Introduction

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

Prototype

public C upperEndpoint() 

Source Link

Document

Returns the upper endpoint of this range.

Usage

From source file:eu.itesla_project.modules.histo.tools.HistoDbPrintVoltageRangeTool.java

@Override
public void run(CommandLine line) throws Exception {
    Interval interval = Interval.parse(line.getOptionValue("interval"));
    Path caseFile = Paths.get(line.getOptionValue("case-file"));
    Map<String, VoltageStats> ranges = new HashMap<>();

    Network network = Importers.loadNetwork(caseFile);
    if (network == null) {
        throw new RuntimeException("Case '" + caseFile + "' not found");
    }/*from   w  w  w .  j a  v a 2s . c om*/
    network.getStateManager().allowStateMultiThreadAccess(true);

    OfflineConfig config = OfflineConfig.load();
    try (HistoDbClient histoDbClient = config.getHistoDbClientFactoryClass().newInstance().create()) {
        Set<HistoDbAttributeId> attrIds = new LinkedHashSet<>();
        for (VoltageLevel vl : network.getVoltageLevels()) {
            attrIds.add(new HistoDbNetworkAttributeId(vl.getId(), HistoDbAttr.V));
        }
        HistoDbStats stats = histoDbClient.queryStats(attrIds, interval, HistoDbHorizon.SN, false);
        for (VoltageLevel vl : network.getVoltageLevels()) {
            HistoDbNetworkAttributeId attrId = new HistoDbNetworkAttributeId(vl.getId(), HistoDbAttr.V);
            float min = stats.getValue(HistoDbStatsType.MIN, attrId, Float.NaN) / vl.getNominalV();
            float max = stats.getValue(HistoDbStatsType.MAX, attrId, Float.NaN) / vl.getNominalV();
            int count = (int) stats.getValue(HistoDbStatsType.COUNT, attrId, 0);
            VoltageStats vstats = new VoltageStats(Range.closed(min, max), count, vl.getNominalV());
            for (Generator g : vl.getGenerators()) {
                vstats.pmax += g.getMaxP();
            }
            ranges.put(vl.getId(), vstats);
        }
    }
    Table table = new Table(7, BorderStyle.CLASSIC_WIDE);
    table.addCell("ID");
    table.addCell("vnom");
    table.addCell("range");
    table.addCell("min");
    table.addCell("max");
    table.addCell("count");
    table.addCell("pmax");
    ranges.entrySet().stream().sorted((e1, e2) -> {
        VoltageStats stats1 = e1.getValue();
        VoltageStats stats2 = e2.getValue();
        Range<Float> r1 = stats1.range;
        Range<Float> r2 = stats2.range;
        float s1 = r1.upperEndpoint() - r1.lowerEndpoint();
        float s2 = r2.upperEndpoint() - r2.lowerEndpoint();
        return Float.compare(s1, s2);
    }).forEach(e -> {
        String vlId = e.getKey();
        VoltageStats stats = e.getValue();
        Range<Float> r = stats.range;
        float s = r.upperEndpoint() - r.lowerEndpoint();
        table.addCell(vlId);
        table.addCell(Float.toString(stats.vnom));
        table.addCell(Float.toString(s));
        table.addCell(Float.toString(r.lowerEndpoint()));
        table.addCell(Float.toString(r.upperEndpoint()));
        table.addCell(Integer.toString(stats.count));
        table.addCell(Float.toString(stats.pmax));
    });
    System.out.println(table.render());
}

From source file:org.openmhealth.shimmer.common.transformer.FixedTimeZoneDateTimeRangeTransformer.java

@Override
public Range<OffsetDateTime> transformRange(Range<OffsetDateTime> inputRange) {

    if (inputRange.hasLowerBound() && inputRange.hasUpperBound()) {
        return Range.closedOpen(toFixedTimeZone(inputRange.lowerEndpoint()),
                toFixedTimeZone(inputRange.upperEndpoint()));
    }//from  w  w  w .j  a v  a2 s  .  c om

    if (inputRange.hasLowerBound()) {
        return Range.atLeast(toFixedTimeZone(inputRange.lowerEndpoint()));
    }

    if (inputRange.hasUpperBound()) {
        return Range.lessThan(toFixedTimeZone(inputRange.upperEndpoint()));
    }

    return Range.all();

}

From source file:coolmapplugin.actions.MapSelectedToCytoscapeWithAggregatedValue.java

private HashMap<String, Double> getSelectedColumnAndRowNamesAndAggregatedValues(
        AggregationType aggregationType) {
    try {/*  w  ww  .  ja v  a2 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.KEGGGateway.java

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

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

    String queryAddress = keggFindAddress1 + toleranceRange.lowerEndpoint() + "-"
            + toleranceRange.upperEndpoint() + keggFindAddress2;

    URL queryURL = new URL(queryAddress);

    String queryResult = InetUtils.retrieveData(queryURL);

    ArrayList<String> results = new ArrayList<String>();

    Pattern pat = Pattern.compile("cpd:(C[0-9]+)");
    Matcher matcher = pat.matcher(queryResult);
    while (matcher.find()) {
        String keggID = matcher.group(1);
        results.add(keggID);/*  ww  w.  j av a2 s.  c  o m*/
    }

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

}

From source file:org.robotframework.red.nattable.TableCellStringData.java

public int getCharacterIndexFrom(final int x, final int y) {
    if (coordinate.x <= x && x <= coordinate.x + extent.x && coordinate.y <= y && y < coordinate.y + extent.y) {
        // the (x,y) position is over the string

        final Range<Integer> startingRegion = getStartingRegion(extent.y, y - coordinate.y);
        int begin = startingRegion.lowerEndpoint();
        int end = startingRegion.upperEndpoint();

        int beginX = coordinate.x;
        int endX = beginX + extent.x;

        while (beginX < (endX - 1)) {
            final int midX = (beginX + endX) / 2;
            if (x >= midX) {
                beginX = midX;/*from   w  w w . ja  v a  2 s.c  o  m*/
                begin = (begin + end) / 2;
            } else {
                endX = midX;
                end = (begin + end) / 2;
            }
        }
        return begin;
    }
    return -1;
}

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  ww  .  j  a va 2 s .  com*/
    if (charAt(end - 1) == '\r')
        end--;
    return extract(start, end);
}

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

private Point makeRequestString(ChangeEvent e, Serializable value, Map<String, String> tags) {
    Builder point = Point.measurement(e.variable()).tag(tags).time(e.timestamp(), TimeUnit.MILLISECONDS);
    if (value instanceof Range<?>) {
        Range<?> range = (Range<?>) value;
        Number start = (Number) range.lowerEndpoint();
        Number end = (Number) range.upperEndpoint();
        point.addField("start", start + "");
        point.addField("end", end + "");
        point.addField("value", (end.doubleValue() - start.doubleValue()) + "");
    } else if (value instanceof Number) {
        point.addField("value", (Number) value);
    } else if (value instanceof Boolean) {
        point.addField("value", (Boolean) value);
    } else if (value instanceof String) {
        point.addField("value", (String) value);
    }/*  w w  w . j a va 2 s . com*/
    return point.build();
}

From source file:net.joala.data.random.AbstractRandomNumberProvider.java

/**
 * Provide a random number in the given range.
 * @param range (closed) range in which to choose a number from
 * @return random value//ww  w.j  ava 2 s  .  co  m
 * @throws IllegalStateException if range is empty
 */
private T nextRandom(final Range<T> range) {
    checkState(!range.isEmpty(), "Range must not be empty.");
    final T lowerEndpoint = range.lowerEndpoint();
    final T upperEndpoint = range.upperEndpoint();
    final double random = nextRandomRatio();
    return numberType.sum(numberType.percentOf(random, upperEndpoint),
            numberType.percentOf((1d - random), lowerEndpoint));
}

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

public List<Range<Integer>> redundantRegions() {
    if (this.regions == null)
        calculateRegions();//from   w  ww. j ava 2s . co  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:com.github.parboiled1.grappa.backport.buffers.CharSequenceInputBuffer.java

@SuppressWarnings("AutoUnboxing")
@Override/*  ww  w . j  a v a 2  s .  c  o  m*/
public IndexRange getLineRange(final int lineNumber) {
    final Range<Integer> range = Futures.getUnchecked(lineCounter).getLineRange(lineNumber);
    return new IndexRange(range.lowerEndpoint(), range.upperEndpoint());
}