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

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

Introduction

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

Prototype

public static <C extends Comparable<?>> Range<C> closed(C lower, C upper) 

Source Link

Document

Returns a range that contains all values greater than or equal to lower and less than or equal to upper .

Usage

From source file:net.sf.mzmine.modules.rawdatamethods.peakpicking.msms.MsMsPeakPickingTask.java

public void run() {

    setStatus(TaskStatus.PROCESSING);//w ww. j  av a 2  s  . c o m

    final Scan scans[] = scanSelection.getMatchingScans(dataFile);
    totalScans = scans.length;
    for (Scan scan : scans) {
        if (isCanceled())
            return;

        // Get the MS Scan
        Scan bestScan = null;
        Range<Double> rtWindow = Range.closed(scan.getRetentionTime() - (binTime / 2.0),
                scan.getRetentionTime() + (binTime / 2.0));
        Range<Double> mzWindow = Range.closed(scan.getPrecursorMZ() - (binSize / 2.0),
                scan.getPrecursorMZ() + (binSize / 2.0));
        DataPoint point;
        DataPoint maxPoint = null;
        int[] regionScanNumbers = dataFile.getScanNumbers(1, rtWindow);
        for (int regionScanNumber : regionScanNumbers) {
            Scan regionScan = dataFile.getScan(regionScanNumber);
            point = ScanUtils.findBasePeak(regionScan, mzWindow);

            // no datapoint found
            if (point == null) {
                continue;
            }
            if (maxPoint == null) {
                maxPoint = point;
            }
            int result = Double.compare(maxPoint.getIntensity(), point.getIntensity());
            if (result <= 0) {
                maxPoint = point;
                bestScan = regionScan;
            }

        }

        // if no representative dataPoint
        if (bestScan == null) {
            continue;
        }

        assert maxPoint != null;

        SimpleFeature c = new SimpleFeature(dataFile, scan.getPrecursorMZ(), bestScan.getRetentionTime(),
                maxPoint.getIntensity(), maxPoint.getIntensity(), new int[] { bestScan.getScanNumber() },
                new DataPoint[] { maxPoint }, FeatureStatus.DETECTED, bestScan.getScanNumber(),
                scan.getScanNumber(), Range.singleton(bestScan.getRetentionTime()),
                Range.singleton(scan.getPrecursorMZ()), Range.singleton(maxPoint.getIntensity()));

        PeakListRow entry = new SimplePeakListRow(scan.getScanNumber());
        entry.addPeak(dataFile, c);

        newPeakList.addRow(entry);
        processedScans++;
    }

    project.addPeakList(newPeakList);

    // Add quality parameters to peaks
    QualityParameters.calculateQualityParameters(newPeakList);

    logger.info("Finished MS/MS peak builder on " + dataFile + ", " + processedScans + " scans processed");

    setStatus(TaskStatus.FINISHED);
}

From source file:org.jclouds.googlecomputeengine.predicates.NetworkFirewallPredicates.java

public static Predicate<Firewall> providesIpPermission(final IpPermission permission) {
    return new Predicate<Firewall>() {
        @Override/*from w ww .j ava2  s . c  o m*/
        public boolean apply(Firewall input) {
            boolean groupsMatchTags = (permission.getGroupIds().isEmpty() && input.getSourceTags().isEmpty())
                    || !Sets.intersection(permission.getGroupIds(), input.getSourceTags()).isEmpty();
            boolean cidrsMatchRanges = (permission.getCidrBlocks().isEmpty()
                    && input.getSourceRanges().isEmpty())
                    || !Sets.intersection(permission.getCidrBlocks(), input.getSourceRanges()).isEmpty();
            boolean firewallHasPorts = hasProtocol(permission.getIpProtocol()).apply(input)
                    && ((permission.getFromPort() == 0 && permission.getToPort() == 0)
                            || hasPortRange(Range.closed(permission.getFromPort(), permission.getToPort()))
                                    .apply(input));

            return groupsMatchTags && cidrsMatchRanges && firewallHasPorts;
        }
    };
}

From source file:com.comphenix.protocol.RangeParser.java

/**
 * Simplify a list of ranges by assuming a maximum value.
 * @param ranges - the list of ranges to simplify.
 * @param maximum - the maximum value (minimum value is always 0).
 * @return A simplified list of ranges./*  w w w.j av a  2  s .co  m*/
 */
private static List<Range<Integer>> simplify(List<Range<Integer>> ranges, int maximum) {
    List<Range<Integer>> result = new ArrayList<Range<Integer>>();
    boolean[] set = new boolean[maximum + 1];
    int start = -1;

    // Set every ID
    for (Range<Integer> range : ranges) {
        for (int id : ContiguousSet.create(range, DiscreteDomain.integers())) {
            set[id] = true;
        }
    }

    // Generate ranges from this set
    for (int i = 0; i <= set.length; i++) {
        if (i < set.length && set[i]) {
            if (start < 0) {
                start = i;
            }
        } else {
            if (start >= 0) {
                result.add(Range.closed(start, i - 1));
                start = -1;
            }
        }
    }

    return result;
}

From source file:org.robotframework.ide.eclipse.main.plugin.project.library.ArgumentsDescriptor.java

public Range<Integer> getPossibleNumberOfArguments() {
    int min = 0;/*from  w  w  w.j ava 2 s .co  m*/
    boolean isUnbounded = false;
    for (final Argument argument : arguments) {
        if (argument.isRequired()) {
            min++;
        }
        isUnbounded |= argument.isVarArg() || argument.isKwArg();
    }
    return isUnbounded ? Range.atLeast(min) : Range.closed(min, arguments.size());
}

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);
                }/* w w  w . j a v a  2s.  co  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();
    }

}

From source file:net.sf.mzmine.modules.visualization.histogram.HistogramRangeParameter.java

@Override
public void loadValueFromXML(Element xmlElement) {

    String typeAttr = xmlElement.getAttribute("selected");
    if (typeAttr.length() == 0)
        return;/* www .j a  v a 2 s.  c o m*/

    this.selectedType = HistogramDataType.valueOf(typeAttr);

    NodeList minNodes = xmlElement.getElementsByTagName("min");
    if (minNodes.getLength() != 1)
        return;
    NodeList maxNodes = xmlElement.getElementsByTagName("max");
    if (maxNodes.getLength() != 1)
        return;

    String minText = minNodes.item(0).getTextContent();
    String maxText = maxNodes.item(0).getTextContent();
    double min = Double.valueOf(minText);
    double max = Double.valueOf(maxText);
    value = Range.closed(min, max);

}

From source file:org.ow2.proactive.scheduler.common.job.factories.spi.model.factory.RangeParserValidator.java

protected Range<T> extractRange(String value, Converter<T> converter) throws ModelSyntaxException {
    String rangeRegexp = "^([^),]+)$|^([^),]+),([^),]+)$";
    try {// w ww. j  a  v a2  s .  co  m
        List<String> modelArguments = parseAndGetRegexGroups(value, rangeRegexp);
        if (modelArguments.size() == 1) {
            T minValue = converter.convert(modelArguments.get(0));
            return Range.atLeast(minValue);
        } else if (modelArguments.size() == 2) {
            T minValue = converter.convert(modelArguments.get(0));
            T maxValue = converter.convert(modelArguments.get(1));
            return Range.closed(minValue, maxValue);
        } else {
            throw new ModelSyntaxException("Internal error, regular expression for " + getType() + " '"
                    + rangeRegexp + "' is invalid.");
        }
    } catch (ConversionException | IllegalArgumentException e) {
        throw new ModelSyntaxException(
                "Illegal " + getType() + " range expression '" + value + "', " + e.getMessage(), e);
    }
}

From source file:jetbrains.jetpad.grammar.parser.LRParser.java

public Object parse(List<Lexeme> input, Function<Rule, RuleHandler> handlerProvider) {
    Stack<ParseStackItem> stack = new Stack<>();
    stack.push(new ParseStackItem(myTable.getInitialState(), -1, -1, null, null));
    int pos = 0;// w  w w  .  ja v  a 2 s . co m
    while (true) {
        Lexeme lexeme = pos < input.size() ? input.get(pos) : null;
        Terminal current = lexeme != null ? lexeme.getTerminal() : myTable.getGrammar().getEnd();
        LRParserState state = stack.peek().state;
        LRParserAction<LRParserState> action = state.getAction(current);
        if (action instanceof LRParserAction.Shift) {
            LRParserAction.Shift<LRParserState> shift = (LRParserAction.Shift<LRParserState>) action;
            stack.push(new ParseStackItem(shift.getState(), pos, pos + 1, current, lexeme));
            pos++;
        } else if (action instanceof LRParserAction.Reduce) {
            LRParserAction.Reduce<LRParserState> reduce = (LRParserAction.Reduce<LRParserState>) action;

            List<Object> handlerInput = new ArrayList<>();
            int startOffset = pos;
            List<Symbol> symbols = reduce.getRule().getSymbols();
            for (int i = 0; i < symbols.size(); i++) {
                ParseStackItem top = stack.pop();
                if (i == symbols.size() - 1) {
                    startOffset = top.start;
                }
                handlerInput.add(top.result);
            }
            Collections.reverse(handlerInput);

            LRParserState nextState = stack.peek().state.getNextState(reduce.getRule().getHead());
            RuleContext ruleContext = new MyRuleContext(Range.closed(startOffset, pos), handlerInput, input);
            RuleHandler handler = handlerProvider.apply(reduce.getRule());
            Object result = handler != null ? handler.handle(ruleContext) : handlerInput;

            stack.push(new ParseStackItem(nextState, startOffset, pos, reduce.getRule().getHead(), result));
        } else if (action instanceof LRParserAction.Accept) {
            return stack.peek().result;
        } else {
            return null;
        }
    }
}

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   w w  w .  j a  v a 2s  .c o  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:dollar.api.types.DollarRange.java

public DollarRange(boolean lowerBounds, boolean upperBounds, boolean closedLeft, boolean closedRight,
        @Nullable Value lower, @Nullable Value upper) {
    super();/*from   ww w .  j  ava2  s  .  c o m*/
    Value lowerBound;
    Value upperBound;
    if ((lower != null) && (upper != null) && (lower.compareTo(upper) > 0)) {
        lowerBound = upper;
        upperBound = lower;
        reversed = true;
    } else {
        lowerBound = lower;
        upperBound = upper;
    }
    if (!lowerBounds && !upperBounds) {
        range = Range.all();
    } else if (!lowerBounds) {
        if (closedRight) {
            range = Range.atMost(upperBound);
        } else {
            range = Range.lessThan(upperBound);
        }
    } else if (!upperBounds) {
        if (closedLeft) {
            range = Range.atLeast(lowerBound);
        } else {
            range = Range.greaterThan(lowerBound);
        }
    } else if (closedLeft) {
        if (closedRight) {
            range = Range.closed(lowerBound, upperBound);
        } else {
            //openRight
            range = Range.closedOpen(lowerBound, upperBound);
        }
    } else if (!closedLeft) {
        //openLeft
        if (closedRight) {
            range = Range.openClosed(lowerBound, upperBound);
        } else {
            //openRight
            if (lowerBound.equals(upperBound)) {
                throw new IllegalArgumentException(
                        "Cannot have an open range with lower bounds being the same as upper " + "bounds");
            } else {
                range = Range.open(lowerBound, upperBound);
            }
        }
    } else {
        throw new IllegalStateException();
    }
}