List of usage examples for com.google.common.collect Range upperEndpoint
public C upperEndpoint()
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); }