List of usage examples for com.google.common.collect Range contains
public boolean contains(C value)
From source file:net.sf.mzmine.project.impl.RawDataFileImpl.java
/** * @see net.sf.mzmine.datamodel.RawDataFile#getScanNumbers(int, double, * double)/*from w w w . j a va 2s . c o m*/ */ public @Nonnull int[] getScanNumbers(int msLevel, @Nonnull Range<Double> rtRange) { assert rtRange != null; ArrayList<Integer> eligibleScanNumbers = new ArrayList<Integer>(); Enumeration<StorableScan> scansEnum = scans.elements(); while (scansEnum.hasMoreElements()) { Scan scan = scansEnum.nextElement(); if ((scan.getMSLevel() == msLevel) && (rtRange.contains(scan.getRetentionTime()))) eligibleScanNumbers.add(scan.getScanNumber()); } int[] numbersArray = Ints.toArray(eligibleScanNumbers); Arrays.sort(numbersArray); return numbersArray; }
From source file:com.haulmont.yarg.formatters.impl.XlsxFormatter.java
protected int processInnerFormulas(CTCalcChain calculationChain) { int formulaCount = 1; for (Cell cellWithFormula : innerFormulas) { Row row = (Row) cellWithFormula.getParent(); Worksheet worksheet = getWorksheet(row); Set<Range> formulaRanges = Range.fromCellFormula(result.getSheetName(worksheet), cellWithFormula); for (Range templateRange : rangeDependencies.templates()) { if (templateRange.containsAny(formulaRanges)) { List<Range> resultRanges = rangeDependencies.resultsForTemplate(templateRange); CellReference cellReference = new CellReference(result.getSheetName(worksheet), cellWithFormula.getR()); for (Range resultRange : resultRanges) { if (resultRange.contains(cellReference)) { Offset offset = calculateOffset(templateRange, resultRange); for (Range formulaRange : formulaRanges) { Range shiftedFormulaRange = formulaRange.copy().shift(offset.downOffset, offset.rightOffset); updateFormula(cellWithFormula, formulaRange, shiftedFormulaRange, calculationChain, formulaCount++); }/*from w w w. j a v a 2s. co m*/ break; } } } } } return formulaCount; }
From source file:com.haulmont.yarg.formatters.impl.XlsxFormatter.java
protected void updateConditionalFormatting() { for (Document.SheetWrapper sheetWrapper : result.getWorksheets()) { Worksheet worksheet = sheetWrapper.getWorksheet().getJaxbElement(); for (CTConditionalFormatting ctConditionalFormatting : worksheet.getConditionalFormatting()) { List<String> references = new ArrayList<String>(); for (String ref : ctConditionalFormatting.getSqref()) { Range formulaRange = Range.fromRange(sheetWrapper.getName(), ref); for (Range templateRange : rangeDependencies.templates()) { if (templateRange.contains(formulaRange)) { List<Range> resultRanges = new ArrayList<Range>( rangeDependencies.resultsForTemplate(templateRange)); for (Range resultRange : resultRanges) { Offset offset = calculateOffset(templateRange, resultRange); Range shift = formulaRange.copy().shift(offset.downOffset, offset.rightOffset); references.add(shift.toRange()); }/*from w w w .ja va 2 s .c om*/ } } } ctConditionalFormatting.getSqref().clear(); ctConditionalFormatting.getSqref().addAll(references); } } }
From source file:com.haulmont.yarg.formatters.impl.XlsxFormatter.java
protected void processOuterFormulas(int formulaCount, CTCalcChain calculationChain) { for (Cell cellWithFormula : outerFormulas) { Row row = (Row) cellWithFormula.getParent(); Worksheet worksheet = getWorksheet(row); Set<Range> formulaRanges = Range.fromCellFormula(result.getSheetName(worksheet), cellWithFormula); CellReference formulaCellReference = new CellReference(result.getSheetName(worksheet), cellWithFormula.getR()); BandData formulaParentBand = null; BandData formulaBand = null;//from w w w . j a v a 2 s . c o m for (Range resultRange : rangeDependencies.results()) { if (resultRange.contains(formulaCellReference)) { formulaBand = bandsForRanges.bandForResultRange(resultRange); formulaParentBand = formulaBand.getParentBand(); } } for (Range templateRange : rangeDependencies.templates()) { if (templateRange.containsAny(formulaRanges)) { List<Range> resultRanges = new ArrayList<Range>( rangeDependencies.resultsForTemplate(templateRange)); for (Iterator<Range> iterator = resultRanges.iterator(); iterator.hasNext();) { Range resultRange = iterator.next(); BandData bandData = bandsForRanges.bandForResultRange(resultRange); if (!bandData.getParentBand().equals(formulaParentBand) && !bandData.getParentBand().equals(formulaBand)) { iterator.remove(); } } for (Range formulaRange : formulaRanges) { if (resultRanges.size() > 0) { Range shiftedRange = calculateFormulaRangeChange(formulaRange, templateRange, resultRanges); updateFormula(cellWithFormula, formulaRange, shiftedRange, calculationChain, formulaCount++); } else { cellWithFormula.setF(null); cellWithFormula.setV("ERROR: Formula references to empty range"); cellWithFormula.setT(STCellType.STR); } } break; } } } }
From source file:net.sf.mzmine.modules.visualization.neutralloss.NeutralLossDataSet.java
public void updateOnRangeDataPoints(String rangeType) { NeutralLossPlot plot = visualizer.getPlot(); Range<Double> prRange = plot.getHighlightedPrecursorRange(); Range<Double> nlRange = plot.getHighlightedNeutralLossRange(); // Set type of search int level = NEUTRALLOSS_LEVEL; if (rangeType.equals("HIGHLIGHT_PRECURSOR")) level = PRECURSOR_LEVEL;//from w w w . j a va2 s . c om // Clean previous selection dataSeries.get(level).clear(); NeutralLossDataPoint point; boolean b = false; for (int i = 0; i < dataSeries.get(RAW_LEVEL).size(); i++) { point = dataSeries.get(RAW_LEVEL).get(i); // Verify if the point is on range if (level == PRECURSOR_LEVEL) b = prRange.contains(point.getPrecursorMass()); else b = nlRange.contains(point.getNeutralLoss()); if (b) dataSeries.get(level).add(point); } fireDatasetChanged(); }
From source file:com.haulmont.yarg.formatters.impl.XlsxFormatter.java
private void processSeries(ListSer o) { List<SerContent> ser = o.getSer(); for (SerContent ctBarSer : ser) { CTAxDataSource captions = ctBarSer.getCat(); if (captions != null && captions.getStrRef() != null) { Range temlpateCaptionsRange = Range.fromFormula(captions.getStrRef().getF()); for (Range bandRange : rangeDependencies.templates()) { if (bandRange.contains(temlpateCaptionsRange)) { List<Range> seriesResultRanges = rangeDependencies.resultsForTemplate(bandRange); Range seriesFirstRange = getFirst(seriesResultRanges); Range seriesLastRange = getLast(seriesResultRanges); Offset offset = calculateOffset(temlpateCaptionsRange, seriesFirstRange); Offset initialOffset = calculateOffset(temlpateCaptionsRange, bandRange); temlpateCaptionsRange = temlpateCaptionsRange.shift( offset.downOffset - initialOffset.downOffset, offset.rightOffset - initialOffset.rightOffset); Offset grow = calculateOffset(seriesFirstRange, seriesLastRange); temlpateCaptionsRange.grow(grow.downOffset, grow.rightOffset); captions.getStrRef().setF(temlpateCaptionsRange.toFormula()); break; }//ww w .j av a2 s .c om } } CTNumDataSource data = ctBarSer.getVal(); if (data != null && data.getNumRef() != null) { Range templateDataRange = Range.fromFormula(data.getNumRef().getF()); for (Range bandRange : rangeDependencies.templates()) { if (bandRange.contains(templateDataRange)) { List<Range> seriesResultRanges = rangeDependencies.resultsForTemplate(bandRange); Range seriesFirstRange = getFirst(seriesResultRanges); Range seriesLastRange = getLast(seriesResultRanges); Offset offset = calculateOffset(templateDataRange, seriesFirstRange); Offset initialOffset = calculateOffset(templateDataRange, bandRange); templateDataRange = templateDataRange.shift(offset.downOffset - initialOffset.downOffset, offset.rightOffset - initialOffset.rightOffset); Offset grow = calculateOffset(seriesFirstRange, seriesLastRange); templateDataRange.grow(grow.downOffset, grow.rightOffset); data.getNumRef().setF(templateDataRange.toFormula()); break; } } } } }
From source file:org.apache.calcite.rex.RexSimplify.java
private static RexNode processRange(RexBuilder rexBuilder, List<RexNode> terms, Map<String, Pair<Range, List<RexNode>>> rangeTerms, RexNode term, RexNode ref, RexLiteral constant, SqlKind comparison) {// w ww . j a va 2 s . co m final Comparable v0 = constant.getValue(); Pair<Range, List<RexNode>> p = rangeTerms.get(ref.toString()); if (p == null) { Range r; switch (comparison) { case EQUALS: r = Range.singleton(v0); break; case LESS_THAN: r = Range.lessThan(v0); break; case LESS_THAN_OR_EQUAL: r = Range.atMost(v0); break; case GREATER_THAN: r = Range.greaterThan(v0); break; case GREATER_THAN_OR_EQUAL: r = Range.atLeast(v0); break; default: throw new AssertionError(); } rangeTerms.put(ref.toString(), new Pair(r, ImmutableList.of(term))); } else { // Exists boolean removeUpperBound = false; boolean removeLowerBound = false; Range r = p.left; switch (comparison) { case EQUALS: if (!r.contains(v0)) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } rangeTerms.put(ref.toString(), new Pair(Range.singleton(v0), ImmutableList.of(term))); // remove terms.removeAll(p.right); break; case LESS_THAN: { int comparisonResult = 0; if (r.hasUpperBound()) { comparisonResult = v0.compareTo(r.upperEndpoint()); } if (comparisonResult <= 0) { // 1) No upper bound, or // 2) We need to open the upper bound, or // 3) New upper bound is lower than old upper bound if (r.hasLowerBound()) { if (v0.compareTo(r.lowerEndpoint()) < 0) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // a <= x < b OR a < x < b r = Range.range(r.lowerEndpoint(), r.lowerBoundType(), v0, BoundType.OPEN); } else { // x < b r = Range.lessThan(v0); } if (r.isEmpty()) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // remove prev upper bound removeUpperBound = true; } else { // Remove this term as it is contained in current upper bound terms.remove(term); } break; } case LESS_THAN_OR_EQUAL: { int comparisonResult = -1; if (r.hasUpperBound()) { comparisonResult = v0.compareTo(r.upperEndpoint()); } if (comparisonResult < 0) { // 1) No upper bound, or // 2) New upper bound is lower than old upper bound if (r.hasLowerBound()) { if (v0.compareTo(r.lowerEndpoint()) < 0) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // a <= x <= b OR a < x <= b r = Range.range(r.lowerEndpoint(), r.lowerBoundType(), v0, BoundType.CLOSED); } else { // x <= b r = Range.atMost(v0); } if (r.isEmpty()) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // remove prev upper bound removeUpperBound = true; } else { // Remove this term as it is contained in current upper bound terms.remove(term); } break; } case GREATER_THAN: { int comparisonResult = 0; if (r.hasLowerBound()) { comparisonResult = v0.compareTo(r.lowerEndpoint()); } if (comparisonResult >= 0) { // 1) No lower bound, or // 2) We need to open the lower bound, or // 3) New lower bound is greater than old lower bound if (r.hasUpperBound()) { if (v0.compareTo(r.upperEndpoint()) > 0) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // a < x <= b OR a < x < b r = Range.range(v0, BoundType.OPEN, r.upperEndpoint(), r.upperBoundType()); } else { // x > a r = Range.greaterThan(v0); } if (r.isEmpty()) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // remove prev lower bound removeLowerBound = true; } else { // Remove this term as it is contained in current lower bound terms.remove(term); } break; } case GREATER_THAN_OR_EQUAL: { int comparisonResult = 1; if (r.hasLowerBound()) { comparisonResult = v0.compareTo(r.lowerEndpoint()); } if (comparisonResult > 0) { // 1) No lower bound, or // 2) New lower bound is greater than old lower bound if (r.hasUpperBound()) { if (v0.compareTo(r.upperEndpoint()) > 0) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // a <= x <= b OR a <= x < b r = Range.range(v0, BoundType.CLOSED, r.upperEndpoint(), r.upperBoundType()); } else { // x >= a r = Range.atLeast(v0); } if (r.isEmpty()) { // Range is empty, not satisfiable return rexBuilder.makeLiteral(false); } // remove prev lower bound removeLowerBound = true; } else { // Remove this term as it is contained in current lower bound terms.remove(term); } break; } default: throw new AssertionError(); } if (removeUpperBound) { ImmutableList.Builder<RexNode> newBounds = ImmutableList.builder(); for (RexNode e : p.right) { if (e.isA(SqlKind.LESS_THAN) || e.isA(SqlKind.LESS_THAN_OR_EQUAL)) { terms.remove(e); } else { newBounds.add(e); } } newBounds.add(term); rangeTerms.put(ref.toString(), new Pair(r, newBounds.build())); } else if (removeLowerBound) { ImmutableList.Builder<RexNode> newBounds = ImmutableList.builder(); for (RexNode e : p.right) { if (e.isA(SqlKind.GREATER_THAN) || e.isA(SqlKind.GREATER_THAN_OR_EQUAL)) { terms.remove(e); } else { newBounds.add(e); } } newBounds.add(term); rangeTerms.put(ref.toString(), new Pair(r, newBounds.build())); } } // Default return null; }
From source file:net.sf.mzmine.modules.visualization.msms.MsMsBottomPanel.java
/** * Returns a peak list with the top peaks defined by the parameter * "threshold"//from w ww .ja v a 2 s. c o m */ PeakList getTopThresholdPeakList(int threshold) { PeakList selectedPeakList = (PeakList) peakListSelector.getSelectedItem(); if (selectedPeakList == null) return null; SimplePeakList newList = new SimplePeakList(selectedPeakList.getName(), selectedPeakList.getRawDataFiles()); Vector<PeakListRow> peakRows = new Vector<PeakListRow>(); Range<Double> mzRange = selectedPeakList.getRowsMZRange(); Range<Double> rtRange = selectedPeakList.getRowsRTRange(); PeakThresholdMode selectedPeakOption = (PeakThresholdMode) thresholdCombo.getSelectedItem(); if (selectedPeakOption == PeakThresholdMode.TOP_PEAKS_AREA) { XYPlot xyPlot = masterFrame.getPlot().getXYPlot(); org.jfree.data.Range yAxis = xyPlot.getRangeAxis().getRange(); org.jfree.data.Range xAxis = xyPlot.getDomainAxis().getRange(); rtRange = Range.closed(xAxis.getLowerBound(), xAxis.getUpperBound()); mzRange = Range.closed(yAxis.getLowerBound(), yAxis.getUpperBound()); } for (PeakListRow peakRow : selectedPeakList.getRows()) { if (mzRange.contains(peakRow.getAverageMZ()) && rtRange.contains(peakRow.getAverageRT())) { peakRows.add(peakRow); } } Collections.sort(peakRows, new PeakListRowSorter(SortingProperty.Intensity, SortingDirection.Descending)); if (threshold > peakRows.size()) threshold = peakRows.size(); for (int i = 0; i < threshold; i++) { newList.addRow(peakRows.elementAt(i)); } return newList; }
From source file:com.b2international.snowowl.snomed.core.ecl.SnomedEclRefinementEvaluator.java
static Function<Collection<Property>, Collection<Property>> filterByCardinality( final boolean grouped, final Range<Long> groupCardinality, final Range<Long> cardinality, final Function<Property, Object> idProvider) { return matchingProperties -> { final Multimap<Object, Property> propertiesByMatchingIds = Multimaps.index(matchingProperties, idProvider);//w w w . j av a 2 s . c o m final Collection<Property> properties = newHashSet(); final Range<Long> allowedRelationshipCardinality; if (grouped) { final long minRelationships = groupCardinality.lowerEndpoint() == 0 ? cardinality.lowerEndpoint() : groupCardinality.lowerEndpoint() * cardinality.lowerEndpoint(); final long maxRelationships; if (groupCardinality.hasUpperBound() && cardinality.hasUpperBound()) { if (groupCardinality.upperEndpoint() == Long.MAX_VALUE || cardinality.upperEndpoint() == Long.MAX_VALUE) { maxRelationships = Long.MAX_VALUE; } else { maxRelationships = groupCardinality.upperEndpoint() * cardinality.upperEndpoint(); } } else { // group and relationship cardinalities are unbounded maxRelationships = Long.MAX_VALUE; } allowedRelationshipCardinality = Range.closed(minRelationships, maxRelationships); } else { allowedRelationshipCardinality = cardinality; } for (Object matchingConceptId : propertiesByMatchingIds.keySet()) { final Collection<Property> propertiesOfConcept = propertiesByMatchingIds.get(matchingConceptId); if (allowedRelationshipCardinality.contains((long) propertiesOfConcept.size())) { if (grouped) { final Multimap<Integer, Property> indexedByGroup = FluentIterable.from(propertiesOfConcept) .index(Property::getGroup); // if groups should be considered as well, then check group numbers in the matching sets // check that the concept has at least the right amount of groups final Multimap<Integer, Property> validGroups = ArrayListMultimap.create(); for (Integer group : indexedByGroup.keySet()) { final Collection<Property> groupedRelationships = indexedByGroup.get(group); if (cardinality.contains((long) groupedRelationships.size())) { validGroups.putAll(group, groupedRelationships); } } if (groupCardinality.contains((long) validGroups.keySet().size())) { properties.addAll(validGroups.values()); } } else { properties.addAll(propertiesOfConcept); } } } return properties; }; }
From source file:com.nimbits.server.process.BlobStoreImpl.java
@Override public List<Value> getSeries(final ValueService valueService, final Entity entity, final Optional<Range<Date>> timespan, final Optional<Range<Integer>> range, final Optional<String> mask) { //TODO - some way to test if a count has been reached before reading all files if no timespan is give - like test the list by processing it to see if it's complete //enough to return while reading other files. String root = settingsService.getSetting(ServerSetting.storeDirectory); String path = root + "/" + entity.getKey(); List<Value> allvalues = new ArrayList<>(INITIAL_CAPACITY); List<String> allReadFiles = new ArrayList<>(INITIAL_CAPACITY); File file = new File(path); Range<Date> maxRange = timespan.isPresent() ? Range.closed(defragmenter.zeroOutDateToStart(timespan.get().lowerEndpoint()), defragmenter.zeroOutDateToStart(timespan.get().upperEndpoint())) : Range.closed(defragmenter.zeroOutDateToStart(new Date(0)), defragmenter.zeroOutDateToStart(new Date())); // all dates if (file.exists()) { List<String> dailyFolderPaths = new ArrayList<>(); for (String dailyFolderPath : file.list()) { File node = new File(dailyFolderPath); if (!node.getName().endsWith(SNAPSHOT)) { Long timestamp = Long.valueOf(dailyFolderPath); if (maxRange.contains(new Date(timestamp))) { dailyFolderPaths.add(root + "/" + entity.getKey() + "/" + dailyFolderPath); }//from w ww.jav a 2s.c o m } } if (!dailyFolderPaths.isEmpty()) { Collections.sort(dailyFolderPaths); Collections.reverse(dailyFolderPaths); for (String sortedDayPath : dailyFolderPaths) { Iterator result2 = FileUtils.iterateFiles(new File(sortedDayPath), null, false); List<String> filePaths = new ArrayList<>(); while (result2.hasNext()) { File listItem = (File) result2.next(); String filePath = listItem.getName(); if (!filePath.endsWith(SNAPSHOT)) { filePaths.add(sortedDayPath + "/" + filePath); } } Collections.sort(filePaths); Collections.reverse(filePaths); for (String sortedFilePath : filePaths) { List<Value> values = readValuesFromFile(sortedFilePath); allvalues.addAll(values); allReadFiles.add(sortedFilePath); } } } List<Value> filtered = storageIO.filterValues(allvalues, timespan, range, mask); if (allReadFiles.size() > INITIAL_CAPACITY) { //TODO will break if # of days = initial capacity // logger.info("Defragmenting " + allReadFiles.size()); deleteAndRestore(this, valueService, entity, allvalues, allReadFiles); } // logger.info("****** returning " + filtered.size()); return ImmutableList.copyOf(filtered); } else { logger.info("file not found"); return Collections.emptyList(); } }