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:net.bican.iplib.IPAddresses.java

private static Set<Range<IPAddress>> fromConnectedInterval(final Range<IPAddress> interval) {
    if (interval.isEmpty()) {
        return null;
    }//from w  ww . ja  v a 2  s .  co  m
    int prefix = 0;
    final LongDiscreteDomain<IPAddress> domain = interval.lowerEndpoint().getDomain();
    while (prefix <= domain.maxPrefix()) {
        final Range<IPAddress> thisRange = IPAddresses.canonical(interval, domain);
        final Range<IPAddress> otherRange = IPAddresses.fromCIDR(new CIDR(thisRange.lowerEndpoint(), prefix));
        if (thisRange.equals(otherRange)) {
            TreeSet<Range<IPAddress>> result = new TreeSet<>(IPAddressRangeComparator.getComparator());
            result.add(otherRange);
            return result;
        } else if (thisRange.encloses(otherRange)) {
            final Set<Range<IPAddress>> result = new TreeSet<>(IPAddressRangeComparator.getComparator());
            result.add(otherRange);
            Range<IPAddress> newRange1 = Range.closedOpen(thisRange.lowerEndpoint(),
                    otherRange.lowerEndpoint());
            Range<IPAddress> newRange2 = Range.openClosed(otherRange.upperEndpoint(),
                    thisRange.upperEndpoint());
            final Set<Range<IPAddress>> results1 = IPAddresses.fromConnectedInterval(newRange1);
            if (results1 != null) {
                result.addAll(results1);
            }
            final Set<Range<IPAddress>> results2 = IPAddresses.fromConnectedInterval(newRange2);
            if (results2 != null) {
                result.addAll(results2);
            }
            return result;
        }
        prefix++;
    }
    return new TreeSet<>(Collections.singleton(interval));
}

From source file:net.sf.mzmine.modules.visualization.peaklisttable.PeakListTablePopupMenu.java

/**
 * Get a peak's m/z range./*from w ww  .j  a  v a  2s.c  om*/
 * 
 * @param peak
 *            the peak.
 * @return The peak's m/z range.
 */
private static Range<Double> getPeakMZRange(final Feature peak) {

    final Range<Double> peakMZRange = peak.getRawDataPointsMZRange();

    // By default, open the visualizer with the m/z range of
    // "peak_width x 2", but no smaller than 0.1 m/z, because with smaller
    // ranges VisAD tends to show nasty anti-aliasing artifacts.
    // For example of such artifacts, set mzMin = 440.27, mzMax = 440.28 and
    // mzResolution = 500
    final double minRangeCenter = (peakMZRange.upperEndpoint() + peakMZRange.lowerEndpoint()) / 2.0;
    final double minRangeWidth = Math.max(0.1, (peakMZRange.upperEndpoint() - peakMZRange.lowerEndpoint()) * 2);
    double mzMin = minRangeCenter - (minRangeWidth / 2);
    if (mzMin < 0)
        mzMin = 0;
    double mzMax = minRangeCenter + (minRangeWidth / 2);
    return Range.closed(mzMin, mzMax);
}

From source file:eu.itesla_project.modules.histo.HistoDbUtil.java

public static void fixVoltageLimits(Network network, HistoDbClient histoDbClient, Interval interval)
        throws IOException, InterruptedException {
    // resize voltage limits with historical data
    Set<HistoDbAttributeId> attributeIds = new LinkedHashSet<>();
    for (VoltageLevel vl : network.getVoltageLevels()) {
        attributeIds.add(createVoltageAttributeId(vl));
    }/*from   w  w w.  j  a v  a 2s.  c  o m*/
    HistoDbStats stats = histoDbClient.queryStats(attributeIds, interval, HistoDbHorizon.SN, true);
    for (VoltageLevel vl : network.getVoltageLevels()) {
        HistoDbNetworkAttributeId attributeId = createVoltageAttributeId(vl);

        Range<Float> histoVoltageRangePu = Range.closed(
                stats.getValue(HistoDbStatsType.P0_1, attributeId, Float.NaN) / vl.getNominalV(),
                stats.getValue(HistoDbStatsType.P99_9, attributeId, Float.NaN) / vl.getNominalV());

        Set<EnergySource> energySources = EnumSet.noneOf(EnergySource.class);
        for (Generator g : vl.getGenerators()) {
            energySources.add(g.getEnergySource());
        }

        Range<Float> networkVoltageRangePu = Float.isNaN(vl.getLowVoltageLimit())
                || Float.isNaN(vl.getHighVoltageLimit()) ? Range.closed(Float.NaN, Float.NaN)
                        : Range.closed(vl.getLowVoltageLimit() / vl.getNominalV(),
                                vl.getHighVoltageLimit() / vl.getNominalV());

        LOGGER.trace("Fix voltage range of {}: histo={}, network={}, energySources={}", vl.getId(),
                histoVoltageRangePu, networkVoltageRangePu, energySources);

        Range<Float> rangeToEnclosePu;
        if (energySources.isEmpty()) {
            rangeToEnclosePu = Range.closed(
                    Float.isNaN(networkVoltageRangePu.lowerEndpoint()) ? VOLTAGE_RANGE_NO_GEN.lowerEndpoint()
                            : networkVoltageRangePu.lowerEndpoint(),
                    Float.isNaN(networkVoltageRangePu.upperEndpoint()) ? VOLTAGE_RANGE_NO_GEN.upperEndpoint()
                            : networkVoltageRangePu.upperEndpoint());
        } else {
            if (energySources.contains(EnergySource.NUCLEAR) || energySources.contains(EnergySource.THERMAL)) {
                rangeToEnclosePu = VOLTAGE_RANGE_NUCL_THE_PU;
            } else if (energySources.contains(EnergySource.HYDRO)) {
                rangeToEnclosePu = VOLTAGE_RANGE_HYD_PU;
            } else if (energySources.contains(EnergySource.SOLAR) || energySources.contains(EnergySource.WIND)
                    || energySources.contains(EnergySource.OTHER)) {
                rangeToEnclosePu = VOLTAGE_RANGE_DEFAULT_GEN_PU;
            } else {
                throw new AssertionError();
            }
        }
        Range<Float> rangePu = span(histoVoltageRangePu, rangeToEnclosePu);
        Range<Float> range = Range.closed(rangePu.lowerEndpoint() * vl.getNominalV(),
                rangePu.upperEndpoint() * vl.getNominalV());

        LOGGER.debug("Voltage range of {}: {} Kv ({} pu)", vl.getId(), range, rangePu);

        // check that we have 0.1pu at least for each of the substation
        //            if (rangePu.upperEndpoint() - rangePu.lowerEndpoint() < 0.1) {
        //                throw new RuntimeException("Too tight voltage range " + rangePu  + " for voltage level " + vl.getId() + " " + rangeToEnclosePu);
        //            }

        vl.setLowVoltageLimit(range.lowerEndpoint()).setHighVoltageLimit(range.upperEndpoint());
    }
}

From source file:dollar.api.types.DollarFactory.java

/**
 * To json.//from   w  w  w . ja  v  a2 s.c o m
 *
 * @param value the value
 * @return the object
 */
@Nullable
public static Object toJson(@NotNull Value value) {
    Type i = value.$type();
    if (i.is(Type._VOID) || i.is(Type._INTEGER) || i.is(Type._BOOLEAN) || i.is(Type._DECIMAL)
            || i.is(Type._STRING)) {
        return value.toJavaObject();
    } else if (i.is(Type._DATE)) {
        final JsonObject jsonObject = new JsonObject();
        jsonObject.putString(TYPE_KEY, value.$type().name());
        jsonObject.putString(TEXT_KEY, value.$S());
        jsonObject.putNumber(MILLISECOND_KEY, (long) (value.toDouble() * 24 * 60 * 60 * 1000));
        return jsonObject;
    } else if (i.is(Type._URI)) {
        final JsonObject uriJsonObject = new JsonObject();
        uriJsonObject.putString(TYPE_KEY, value.$type().name());
        uriJsonObject.putString(VALUE_KEY, value.$S());
        return uriJsonObject;
    } else if (i.is(Type._ERROR)) {
        final JsonObject errorJsonObject = new JsonObject();
        errorJsonObject.putString(TYPE_KEY, value.$type().name());
        errorJsonObject.putValue(VALUE_KEY, value.toJsonType());
        return errorJsonObject;
    } else if (i.is(Type._INFINITY)) {
        final JsonObject infinityJsonObject = new JsonObject();
        infinityJsonObject.putString(TYPE_KEY, value.$type().name());
        infinityJsonObject.putValue(POSITIVE_KEY, value.positive());
        return infinityJsonObject;
    } else if (i.is(Type._LIST) || i.is(Type._QUEUE)) {
        final JsonArray array = new JsonArray();
        ImmutableList<Value> arrayList = value.toVarList();
        for (Value v : arrayList) {
            array.add(toJson(v));
        }

        return array;
    } else if (i.is(Type._MAP)) {
        return mapToJsonInternal(value);
    } else if (i.is(Type._RANGE)) {
        final JsonObject rangeObject = new JsonObject();
        rangeObject.putString(TYPE_KEY, value.$type().name());
        final Range<Value> range = value.toJavaObject();
        rangeObject.putValue(LOWERBOUND_KEY, toJson(range.lowerEndpoint()));
        rangeObject.putValue(UPPERBOUND_KEY, toJson(range.upperEndpoint()));
        return rangeObject;
    } else if (i.is(Type._ANY)) {
        return null;
    } else {
        return mapToJsonInternal(value);
    }
}

From source file:org.mskcc.shenkers.data.interval.DiscreteRangeMap.java

public double length(Range<Double> r) {
    return r.upperEndpoint() - r.lowerEndpoint();
}

From source file:org.apache.hadoop.hive.ql.optimizer.calcite.druid.DruidIntervalUtils.java

protected static List<Range> condenseRanges(List<Range> ranges) {
    if (ranges.size() <= 1) {
        return ranges;
    }// w  w  w.  ja va 2s .co m

    Comparator<Range> startThenEnd = new Comparator<Range>() {
        @Override
        public int compare(Range lhs, Range rhs) {
            int compare = 0;
            if (lhs.hasLowerBound() && rhs.hasLowerBound()) {
                compare = lhs.lowerEndpoint().compareTo(rhs.lowerEndpoint());
            } else if (!lhs.hasLowerBound() && rhs.hasLowerBound()) {
                compare = -1;
            } else if (lhs.hasLowerBound() && !rhs.hasLowerBound()) {
                compare = 1;
            }
            if (compare != 0) {
                return compare;
            }
            if (lhs.hasUpperBound() && rhs.hasUpperBound()) {
                compare = lhs.upperEndpoint().compareTo(rhs.upperEndpoint());
            } else if (!lhs.hasUpperBound() && rhs.hasUpperBound()) {
                compare = -1;
            } else if (lhs.hasUpperBound() && !rhs.hasUpperBound()) {
                compare = 1;
            }
            return compare;
        }
    };

    TreeSet<Range> sortedIntervals = Sets.newTreeSet(startThenEnd);
    sortedIntervals.addAll(ranges);

    List<Range> retVal = Lists.newArrayList();

    Iterator<Range> intervalsIter = sortedIntervals.iterator();
    Range currInterval = intervalsIter.next();
    while (intervalsIter.hasNext()) {
        Range next = intervalsIter.next();
        if (currInterval.encloses(next)) {
            continue;
        }
        if (mergeable(currInterval, next)) {
            currInterval = currInterval.span(next);
        } else {
            retVal.add(currInterval);
            currInterval = next;
        }
    }
    retVal.add(currInterval);

    return retVal;
}

From source file:edu.cmu.sv.modelinference.eventtool.AvgEventGenerator.java

@Override
public List<Event> computeEvents(List<Range<Integer>> eventIntervals, double[] ys, int stepSize) {
    List<Event> avgForEvents = new ArrayList<>();
    int idx = 0;/*from  ww w  .  ja  va 2  s.co  m*/
    for (Range<Integer> event : eventIntervals) {
        double[] yData = new double[(event.upperEndpoint() - event.lowerEndpoint()) / stepSize];
        for (int i = 0, r = event.lowerEndpoint(); r < event.upperEndpoint(); r += stepSize, i++, idx++) {
            yData[i] = ys[idx];
        }
        avgForEvents.add(new Event(event, new AvgFeature(yData)));
    }
    return avgForEvents;
}

From source file:org.calrissian.mango.domain.ip.CidrValueRangeIPv4.java

public CidrValueRangeIPv4(String cidrString) {

    Range<IPv4> range = cidrRange(cidrString);

    setStart(range.lowerEndpoint());
    setStop(range.upperEndpoint());
}

From source file:fr.inria.eventcloud.load_balancing.criteria.Criterion.java

public Criterion(String name, LoadBalancer loadBalancer, Range<Double> domain) {
    this(name, loadBalancer, domain, domain.upperEndpoint(), domain.lowerEndpoint());
}

From source file:org.robotframework.ide.eclipse.main.plugin.assist.BaseAssistProposal.java

@Override
public StyledString getStyledLabel() {
    final StyledString label = new StyledString(getLabel());
    for (final Range<Integer> matchingRange : match) {
        final int length = Math.min(matchingRange.upperEndpoint() - matchingRange.lowerEndpoint(),
                label.length() - matchingRange.lowerEndpoint());
        label.setStyle(matchingRange.lowerEndpoint(), length, Stylers.Common.MARKED_PREFIX_STYLER);
    }//from  ww  w . j a va 2  s.  c o  m
    return label;
}