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:google.registry.model.common.TimeOfYear.java

/**
 * Returns an {@link Iterable} of {@link DateTime}s of every recurrence of this particular
 * time of year within a given {@link Range} (usually one spanning many years).
 *
 * <p>WARNING: This can return a potentially very large {@link Iterable} if {@code END_OF_TIME}
 * is used as the upper endpoint of the range.
 *//*from   www. ja  v a  2s . co  m*/
public Iterable<DateTime> getInstancesInRange(Range<DateTime> range) {
    // In registry world, all dates are within START_OF_TIME and END_OF_TIME, so restrict any
    // ranges without bounds to our notion of zero-to-infinity.
    Range<DateTime> normalizedRange = range.intersection(Range.closed(START_OF_TIME, END_OF_TIME));
    Range<Integer> yearRange = Range.closed(normalizedRange.lowerEndpoint().getYear(),
            normalizedRange.upperEndpoint().getYear());
    return FluentIterable.from(ContiguousSet.create(yearRange, integers()))
            .transform(new Function<Integer, DateTime>() {
                @Override
                public DateTime apply(Integer year) {
                    return getDateTimeWithYear(year);
                }
            }).filter(normalizedRange);
}

From source file:io.github.mzmine.modules.featuretable.renderers.RtRangeRenderer.java

@Override
public TreeTableCell<FeatureTableRow, Object> call(TreeTableColumn<FeatureTableRow, Object> p) {
    return new TreeTableCell<FeatureTableRow, Object>() {
        @Override//from w w w.j  av a 2s  . c o  m
        public void updateItem(Object object, boolean empty) {
            super.updateItem(object, empty);
            setStyle("-fx-alignment: CENTER;"
                    + "-fx-border-color: transparent -fx-table-cell-border-color -fx-table-cell-border-color transparent;");
            if (object == null) {
                setText(null);
            } else {
                Range rangeValue = (Range) object;
                NumberFormat formatter = MZmineCore.getConfiguration().getMZFormat();
                String value = formatter.format(rangeValue.lowerEndpoint()) + " - "
                        + formatter.format(rangeValue.upperEndpoint());
                setText(value);
            }
        }
    };
}

From source file:edu.cmu.sphinx.alignment.LongTextAligner.java

/**
 * Aligns query sequence with the previously built database.
 *
 * @return indices of alignment//from   ww w  . j av a2 s.  com
 */
public int[] align(List<String> words, Range<Integer> range) {

    if (range.upperEndpoint() - range.lowerEndpoint() < tupleSize || words.size() < tupleSize) {
        return new GlobalSequenceAligner<String>(
                refWords.subList(range.lowerEndpoint(), range.upperEndpoint() + 1), range.lowerEndpoint())
                        .align(words);
    }

    int[] result = new int[words.size()];
    fill(result, -1);
    int lastIndex = 0;
    for (Alignment.Node node : new Alignment(getTuples(words), range).getIndices()) {
        // for (int j = 0; j < tupleSize; ++j)
        lastIndex = max(lastIndex, node.getQueryIndex());
        for (; lastIndex < node.getQueryIndex() + tupleSize; ++lastIndex)
            result[lastIndex] = node.getDatabaseIndex() + lastIndex - node.getQueryIndex();
    }
    return result;
}

From source file:com.wealdtech.collect.TreeRangedMultimap.java

@Override
public Collection<V> get(final Range<K> range) {
    // Find all items which start before this range ends
    ImmutableSet.Builder<V> startersB = ImmutableSet.builder();
    Map.Entry<K, List<V>> startEntry = startMap.floorEntry(range.upperEndpoint());
    while (startEntry != null) {
        // Because our range is [) we don't include anything on the upper endpoint itself
        if (!startEntry.getKey().equals(range.upperEndpoint())) {
            startersB.addAll(startEntry.getValue());
        }//from   w w  w  .  java 2s  .  co m
        startEntry = startMap.lowerEntry(startEntry.getKey());
    }
    final ImmutableSet<V> starters = startersB.build();

    // Final all items which end after this range starts
    ImmutableSet.Builder<V> finishersB = ImmutableSet.builder();
    Map.Entry<K, List<V>> finishEntry = endMap.ceilingEntry(range.lowerEndpoint());
    while (finishEntry != null) {
        // Because our range is [) we don't include anything on the lower endpoint itself
        if (!finishEntry.getKey().equals(range.lowerEndpoint())) {
            finishersB.addAll(finishEntry.getValue());
        }
        finishEntry = endMap.higherEntry(finishEntry.getKey());
    }
    final ImmutableSet<V> finishers = finishersB.build();

    // Our result is everything which is in both sets
    return Sets.intersection(starters, finishers);
}

From source file:org.jclouds.googlecomputeengine.compute.functions.FirewallToIpPermission.java

@Override
public Iterable<IpPermission> apply(Firewall fw) {
    ImmutableSet.Builder setBuilder = ImmutableSet.builder();

    for (Rule rule : fw.getAllowed()) {
        if (!rule.getPorts().isEmpty()) {
            for (Range<Integer> r : rule.getPorts().asRanges()) {
                IpPermission.Builder builder = populateBuilder(fw, rule.getIpProtocol());
                builder.fromPort(r.lowerEndpoint());
                builder.toPort(r.upperEndpoint());
                setBuilder.add(builder.build());
            }/*from w  ww.  ja  va2 s  .  c om*/
        } else {
            setBuilder.add(populateBuilder(fw, rule.getIpProtocol()).build());
        }
    }

    return setBuilder.build();
}

From source file:eu.itesla_project.wca.WCAHistoLimits.java

public void write(DataSource dataSource, StringToIntMapper<AmplSubset> mapper) throws IOException {

    try (TableFormatter formatter = new AmplDatTableFormatter(
            new OutputStreamWriter(dataSource.newOutputStream(HISTO_LOADS_FILE_SUFFIX, TXT_EXT, false),
                    StandardCharsets.UTF_8),
            "loads historical data " + histoInterval, INVALID_FLOAT_VALUE, true, LOCALE, new Column("num"),
            new Column("min p (MW)"), new Column("max p (MW)"), new Column("id"))) {

        for (Map.Entry<String, Range<Float>> e : loadLimits.entrySet()) {
            String id = e.getKey();
            Range<Float> range = e.getValue();
            int num = mapper.getInt(AmplSubset.LOAD, id);
            formatter.writeCell(num).writeCell(range.lowerEndpoint()).writeCell(range.upperEndpoint())
                    .writeCell(id);//from  w w w. j a  v  a2s .  c o  m
        }
        for (Map.Entry<String, Range<Float>> e : danglingLineLimits.entrySet()) {
            String id = e.getKey();
            Range<Float> range = e.getValue();
            int num = mapper.getInt(AmplSubset.LOAD, id);
            formatter.writeCell(num).writeCell(range.lowerEndpoint()).writeCell(range.upperEndpoint())
                    .writeCell(id + "_load");
        }
    }

    try (TableFormatter formatter = new AmplDatTableFormatter(
            new OutputStreamWriter(dataSource.newOutputStream(HISTO_GENERATORS_FILE_SUFFIX, TXT_EXT, false),
                    StandardCharsets.UTF_8),
            "generators historical data " + histoInterval, INVALID_FLOAT_VALUE, true, LOCALE, new Column("num"),
            new Column("min p (MW)"), new Column("max p (MW)"), new Column("id"))) {

        for (Map.Entry<String, Range<Float>> e : generatorLimits.entrySet()) {
            String id = e.getKey();
            Range<Float> range = e.getValue();
            int num = mapper.getInt(AmplSubset.GENERATOR, id);
            formatter.writeCell(num).writeCell(range.lowerEndpoint()).writeCell(range.upperEndpoint())
                    .writeCell(id);
        }
    }
}

From source file:com.google.eclipse.protobuf.model.util.IndexedElements.java

private long findMaxIndex(Iterable<? extends EObject> elements) {
    long maxIndex = 0;

    for (EObject element : elements) {
        if (element instanceof OneOf) {
            maxIndex = max(maxIndex, findMaxIndex(((OneOf) element).getElements()));
        } else if (element instanceof IndexedElement) {
            maxIndex = max(maxIndex, indexOf((IndexedElement) element));
            if (element instanceof Group) {
                maxIndex = max(maxIndex, findMaxIndex(((Group) element).getElements()));
            }//from   ww  w . java  2  s.  com
        } else if (element instanceof Reserved) {
            for (IndexRange indexRange : Iterables.filter(((Reserved) element).getReservations(),
                    IndexRange.class)) {
                try {
                    Range<Long> range = indexRanges.toLongRange(indexRange);
                    if (range.hasUpperBound()) {
                        maxIndex = max(maxIndex, range.upperEndpoint());
                    }
                } catch (BackwardsRangeException e) {
                    // Do not consider reserved ranges that are invalid.
                }
            }
        }
    }

    return maxIndex;
}

From source file:com.yeah.lbmall.dao.ykpay.PayOrderTableShardingAlgorithm.java

@Override
public Collection<String> doBetweenSharding(final Collection<String> availableTargetNames,
        final ShardingValue<String> shardingValue) {
    Collection<String> result = new LinkedHashSet<>(availableTargetNames.size());
    Range<String> range = shardingValue.getValueRange();

    int min = Integer.parseInt(range.lowerEndpoint().substring(range.lowerEndpoint().length() - 2,
            range.lowerEndpoint().length()));
    int max = Integer.parseInt(range.upperEndpoint().substring(range.upperEndpoint().length() - 2,
            range.upperEndpoint().length()));

    for (Integer i = min; i <= max; i++) {
        for (String each : availableTargetNames) {
            String STR_FORMAT = "00";
            DecimalFormat df = new DecimalFormat(STR_FORMAT);
            if (each.endsWith(df.format(i))) {
                result.add(each);/* w w w. j  a  v  a 2s. com*/
            }
        }
    }
    return result;
}

From source file:org.noroomattheinn.visibletesla.data.CycleStore.java

List<C> getCycles(Range<Long> period) {
    if (period == null)
        period = Range.all();//from  w w w  .ja  v  a 2s  .  co m
    long startTime = period.hasLowerBound() ? period.lowerEndpoint() : 0;
    long endTime = period.hasUpperBound() ? period.upperEndpoint() : Long.MAX_VALUE;

    List<C> cycles = new ArrayList<>();
    BufferedReader r = null;
    try {
        r = new BufferedReader(new FileReader(cycleFile));

        try {
            String entry;
            while ((entry = r.readLine()) != null) {
                C cycle = BaseCycle.fromJSON(entry, theClass);
                if (cycle.startTime >= startTime && cycle.startTime <= endTime) {
                    cycles.add(cycle);
                } else if (cycle.startTime > endTime) {
                    break;
                }
            }
        } catch (IOException ex) {
            logger.warning("Problem reading " + cycleType + " Cycle data: " + ex);
        }
    } catch (FileNotFoundException ex) {
        logger.warning("Could not open " + cycleType + " file: " + ex);
    } finally {
        if (r != null) {
            try {
                r.close();
            } catch (IOException e) {
                logger.warning("Failed closing reader: " + e);
            }
        }
    }
    return cycles;
}

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

public void setData(Range<Integer> view, RangeMap<Integer, Double> data) {

    int lb = view.lowerEndpoint();
    int ub = view.upperEndpoint();
    int r = ub - lb + 1;
    Map<Range<Integer>, Double> map = data.asMapOfRanges();

    if (listBinding != null) {
        listBinding.removeListener(pointUpdater);
    }/*from w  w  w. j a v a 2s .c om*/
    listBinding = Bindings.createObjectBinding(() -> {

        double width = graphic.widthProperty().get();
        double height = graphic.heightProperty().get();
        double min = minProperty.get();
        double max = maxProperty.get();
        boolean flipDomain = flipDomainProperty.get();
        boolean flipRange = flipRangeProperty.get();

        List<Double> points = map.entrySet().stream().flatMap(entry -> {

            Double value = scaleValue(entry.getValue(), min, max, height, flipRange);
            double[] d = scaleDomain(entry.getKey(), lb, r, width, flipDomain);
            return Stream.of(d[0], value, d[1], value);
        }).collect(Collectors.toList());
        points.addAll(0,
                Arrays.asList(points.get(0), scaleValue(zero.doubleValue(), min, max, height, flipRange)));
        points.addAll(Arrays.asList(points.get(points.size() - 2),
                scaleValue(zero.doubleValue(), min, max, height, flipRange)));

        return points;
    }, graphic.widthProperty(), graphic.heightProperty(), minProperty, maxProperty, flipRangeProperty,
            flipDomainProperty, zero);

    listBinding.addListener(pointUpdater);

    graphic.getChildren().add(p);
}