List of usage examples for com.google.common.collect Range upperEndpoint
public C upperEndpoint()
From source file:org.nmdp.ngs.range.Ranges.java
/** * Return the center of the specified range. * * @param <C> range endpoint type//www. j a v a 2s. co m * @param range range, must not be null * @return the center of the specified range */ public static <C extends Comparable> C center(final Range<C> range) { checkNotNull(range); if (!range.hasLowerBound() && !range.hasUpperBound()) { throw new IllegalStateException("cannot find the center of a range without bounds"); } if (!range.hasLowerBound()) { return range.upperEndpoint(); } if (!range.hasUpperBound()) { return range.lowerEndpoint(); } C lowerEndpoint = range.lowerEndpoint(); C upperEndpoint = range.upperEndpoint(); if (upperEndpoint instanceof Integer) { Integer upper = (Integer) upperEndpoint; Integer lower = (Integer) lowerEndpoint; return (C) Integer.valueOf((upper.intValue() + lower.intValue()) / 2); } if (upperEndpoint instanceof Long) { Long upper = (Long) upperEndpoint; Long lower = (Long) lowerEndpoint; return (C) Long.valueOf((upper.longValue() + lower.longValue()) / 2L); } if (upperEndpoint instanceof BigInteger) { BigInteger upper = (BigInteger) upperEndpoint; BigInteger lower = (BigInteger) lowerEndpoint; BigInteger two = BigInteger.valueOf(2L); return (C) upper.subtract(lower).divide(two); } // todo: could potentially calculate the center of any range with a discrete domain throw new IllegalStateException( "cannot find the center of a range whose endpoint type is not Integer, Long, or BigInteger"); }
From source file:org.apache.hadoop.hive.ql.optimizer.calcite.druid.DruidIntervalUtils.java
protected static boolean mergeable(Range range1, Range range2) { Comparable x1 = range1.upperEndpoint(); Comparable x2 = range2.lowerEndpoint(); int compare = x1.compareTo(x2); return compare > 0 || (compare == 0 && range1.upperBoundType() == BoundType.CLOSED && range2.lowerBoundType() == BoundType.CLOSED); }
From source file:org.apache.kylin.common.util.RangeUtil.java
/** * for NavigableMap sorted by C, given a range of C, return the sub map whose key falls in the range *//*from www. j a va2s. c o m*/ public static <C extends Comparable<?>, V> NavigableMap<C, V> filter(NavigableMap<C, V> values, Range<C> filterRange) { if (filterRange == null || filterRange.isEmpty()) { return Maps.newTreeMap(); } else if (filterRange.equals(Range.all())) { return values; } if (filterRange.hasUpperBound() && !filterRange.hasLowerBound()) { return values.headMap(filterRange.upperEndpoint(), upperBoundInclusive(filterRange)); } else if (filterRange.hasLowerBound() && !filterRange.hasUpperBound()) { return values.tailMap(filterRange.lowerEndpoint(), lowerBoundInclusive(filterRange)); } else { return values.subMap(filterRange.lowerEndpoint(), lowerBoundInclusive(filterRange), // filterRange.upperEndpoint(), upperBoundInclusive(filterRange)); } }
From source file:com.google.googlejavaformat.java.RemoveUnusedImports.java
/** Applies the replacements to the given source, and re-format any edited javadoc. */ private static String applyReplacements(String source, RangeMap<Integer, String> replacements) { // save non-empty fixed ranges for reformatting after fixes are applied RangeSet<Integer> fixedRanges = TreeRangeSet.create(); // Apply the fixes in increasing order, adjusting ranges to account for // earlier fixes that change the length of the source. The output ranges are // needed so we can reformat fixed regions, otherwise the fixes could just // be applied in descending order without adjusting offsets. StringBuilder sb = new StringBuilder(source); int offset = 0; for (Map.Entry<Range<Integer>, String> replacement : replacements.asMapOfRanges().entrySet()) { Range<Integer> range = replacement.getKey(); String replaceWith = replacement.getValue(); int start = offset + range.lowerEndpoint(); int end = offset + range.upperEndpoint(); sb.replace(start, end, replaceWith); if (!replaceWith.isEmpty()) { fixedRanges.add(Range.closedOpen(start, end)); }/*from w ww . ja v a 2 s . co m*/ offset += replaceWith.length() - (range.upperEndpoint() - range.lowerEndpoint()); } String result = sb.toString(); // If there were any non-empty replaced ranges (e.g. javadoc), reformat the fixed regions. // We could avoid formatting twice in --fix-imports=also mode, but that is not the default // and removing imports won't usually affect javadoc. if (!fixedRanges.isEmpty()) { try { result = new Formatter().formatSource(result, fixedRanges.asRanges()); } catch (FormatterException e) { // javadoc reformatting is best-effort } } return result; }
From source file:org.learningu.scheduling.util.bst.GeneralRange.java
/** * Converts a Range to a GeneralRange./*from www .ja v a2 s . c o m*/ */ @SuppressWarnings("rawtypes") static <T extends Comparable> GeneralRange<T> from(Range<T> range) { @Nullable T lowerEndpoint = range.hasLowerBound() ? range.lowerEndpoint() : null; BoundType lowerBoundType = range.hasLowerBound() ? range.lowerBoundType() : OPEN; @Nullable T upperEndpoint = range.hasUpperBound() ? range.upperEndpoint() : null; BoundType upperBoundType = range.hasUpperBound() ? range.upperBoundType() : OPEN; return new GeneralRange<T>(Ordering.natural(), range.hasLowerBound(), lowerEndpoint, lowerBoundType, range.hasUpperBound(), upperEndpoint, upperBoundType); }
From source file:net.sf.mzmine.modules.peaklistmethods.msms.msmsscore.MSMSScoreCalculator.java
/** * Returns a calculated similarity score of */// ww w . j a v a2s. c o m public static MSMSScore evaluateMSMS(IMolecularFormula parentFormula, Scan msmsScan, ParameterSet parameters) { MZTolerance msmsTolerance = parameters.getParameter(MSMSScoreParameters.msmsTolerance).getValue(); String massListName = parameters.getParameter(MSMSScoreParameters.massList).getValue(); MassList massList = msmsScan.getMassList(massListName); if (massList == null) { throw new IllegalArgumentException("Scan #" + msmsScan.getScanNumber() + " does not have a mass list called '" + massListName + "'"); } DataPoint msmsIons[] = massList.getDataPoints(); if (msmsIons == null) { throw new IllegalArgumentException( "Mass list " + massList + " does not contain data for scan #" + msmsScan.getScanNumber()); } MolecularFormulaRange msmsElementRange = new MolecularFormulaRange(); for (IIsotope isotope : parentFormula.isotopes()) { msmsElementRange.addIsotope(isotope, 0, parentFormula.getIsotopeCount(isotope)); } int totalMSMSpeaks = 0, interpretedMSMSpeaks = 0; Map<DataPoint, String> msmsAnnotations = new Hashtable<DataPoint, String>(); msmsCycle: for (DataPoint dp : msmsIons) { // Check if this is an isotope Range<Double> isotopeCheckRange = Range.closed(dp.getMZ() - 1.4, dp.getMZ() - 0.6); for (DataPoint dpCheck : msmsIons) { // If we have any MS/MS peak with 1 neutron mass smaller m/z // and higher intensity, it means the current peak is an // isotope and we should ignore it if (isotopeCheckRange.contains(dpCheck.getMZ()) && (dpCheck.getIntensity() > dp.getIntensity())) { continue msmsCycle; } } // If getPrecursorCharge() returns 0, it means charge is unknown. In // that case let's assume charge 1 int precursorCharge = msmsScan.getPrecursorCharge(); if (precursorCharge == 0) precursorCharge = 1; // We don't know the charge of the fragment, so we will simply // assume 1 double neutralLoss = msmsScan.getPrecursorMZ() * precursorCharge - dp.getMZ(); // Ignore negative neutral losses and parent ion, <5 may be a // good threshold if (neutralLoss < 5) { continue; } Range<Double> msmsTargetRange = msmsTolerance.getToleranceRange(neutralLoss); IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance(); MolecularFormulaGenerator msmsEngine; try { msmsEngine = new MolecularFormulaGenerator(builder, msmsTargetRange.lowerEndpoint(), msmsTargetRange.upperEndpoint(), msmsElementRange); } catch (CDKException e) { e.printStackTrace(); return null; } IMolecularFormula formula = msmsEngine.getNextFormula(); if (formula != null) { String formulaString = MolecularFormulaManipulator.getString(formula); msmsAnnotations.put(dp, formulaString); interpretedMSMSpeaks++; } totalMSMSpeaks++; } // If we did not evaluate any MS/MS peaks, we cannot calculate a score if (totalMSMSpeaks == 0) { return null; } double msmsScore = (double) interpretedMSMSpeaks / totalMSMSpeaks; MSMSScore result = new MSMSScore(msmsScore, msmsAnnotations); return result; }
From source file:com.tinspx.util.base.NumberUtils.java
@SuppressWarnings("rawtypes") public static <F extends Comparable, T extends Comparable> Range<T> transform(@NonNull Range<F> range, @NonNull Function<? super F, ? extends T> function) { if (range.hasLowerBound()) { if (range.hasUpperBound()) { return Range.range(function.apply(range.lowerEndpoint()), range.lowerBoundType(), function.apply(range.upperEndpoint()), range.upperBoundType()); } else {/*from ww w . j a va2s. com*/ return Range.downTo(function.apply(range.lowerEndpoint()), range.lowerBoundType()); } } else if (range.hasUpperBound()) { return Range.upTo(function.apply(range.upperEndpoint()), range.upperBoundType()); } else { return Range.all(); } }
From source file:net.bican.iplib.IPAddresses.java
static Range<IPAddress> canonical(final Range<IPAddress> range, final LongDiscreteDomain<IPAddress> domain) { if (range.isEmpty()) { return null; }//w w w . ja v a 2s . c o m final boolean l = range.lowerBoundType() == BoundType.OPEN; final boolean u = range.upperBoundType() == BoundType.OPEN; final IPAddress s = range.lowerEndpoint(); final IPAddress e = range.upperEndpoint(); if (l && u) { Range.closed(domain.next(s), domain.previous(e)); } else if (l) { return Range.closed(domain.next(s), e); } else if (u) { return Range.closed(s, domain.previous(e)); } return range; }
From source file:org.immutables.mongo.repository.internal.Support.java
@SuppressWarnings("unchecked") public static <T extends Comparable<T>> Range<Comparable<Object>> writable(TypeAdapter<T> adapter, Range<T> range) { if (range.hasLowerBound() && range.hasUpperBound()) { return Range.range((Comparable<Object>) writable(adapter, range.lowerEndpoint()), range.lowerBoundType(), (Comparable<Object>) writable(adapter, range.upperEndpoint()), range.upperBoundType()); } else if (range.hasLowerBound()) { return Range.downTo((Comparable<Object>) writable(adapter, range.lowerEndpoint()), range.lowerBoundType()); } else if (range.hasUpperBound()) { return Range.upTo((Comparable<Object>) writable(adapter, range.upperEndpoint()), range.upperBoundType()); }//from ww w . ja va 2 s .co m throw new AssertionError(); }
From source file:org.robotframework.ide.eclipse.main.plugin.project.build.validation.KeywordCallArgumentsValidator.java
private static String getRangesInfo(final Range<Integer> range) { final int minArgs = range.lowerEndpoint(); if (!range.hasUpperBound()) { return "at least " + minArgs + " " + toPluralIfNeeded("argument", minArgs); } else if (range.lowerEndpoint().equals(range.upperEndpoint())) { return minArgs + " " + toPluralIfNeeded("argument", minArgs); } else {//from w w w .j a v a 2 s .c o m final int maxArgs = range.upperEndpoint(); return "from " + minArgs + " to " + maxArgs + " arguments"; } }