com.google.common.collect.TreeRangeMap的实例源码

项目:java-monitoring-client-library    文件:MutableDistribution.java   
/** Constructs an empty Distribution with the specified {@link DistributionFitter}. */
public MutableDistribution(DistributionFitter distributionFitter) {
  this.distributionFitter = checkNotNull(distributionFitter);
  ImmutableSortedSet<Double> boundaries = distributionFitter.boundaries();

  checkArgument(boundaries.size() > 0);
  checkArgument(Ordering.natural().isOrdered(boundaries));

  this.intervalCounts = TreeRangeMap.create();

  double[] boundariesArray = Doubles.toArray(distributionFitter.boundaries());

  // Add underflow and overflow intervals
  this.intervalCounts.put(Range.lessThan(boundariesArray[0]),0L);
  this.intervalCounts.put(Range.atLeast(boundariesArray[boundariesArray.length - 1]),0L);

  // Add finite intervals
  for (int i = 1; i < boundariesArray.length; i++) {
    this.intervalCounts.put(Range.closedOpen(boundariesArray[i - 1],boundariesArray[i]),0L);
  }
}
项目:javaide    文件:ModifierOrderer.java   
/**
 * Applies replacements to the given string.
 */
private static JavaInput applyReplacements(
        JavaInput javaInput,TreeRangeMap<Integer,String> replacementMap) throws FormatterException {
    // process in descending order so the replacement ranges aren't perturbed if any replacements
    // differ in size from the input
    Map<Range<Integer>,String> ranges = replacementMap.asDescendingMapOfRanges();
    if (ranges.isEmpty()) {
        return javaInput;
    }
    StringBuilder sb = new StringBuilder(javaInput.getText());
    for (Entry<Range<Integer>,String> entry : ranges.entrySet()) {
        Range<Integer> range = entry.getKey();
        sb.replace(range.lowerEndpoint(),range.upperEndpoint(),entry.getValue());
    }
    return new JavaInput(sb.toString());
}
项目:google-java-format    文件:ModifierOrderer.java   
/** Applies replacements to the given string. */
private static JavaInput applyReplacements(
    JavaInput javaInput,String> replacementMap) throws FormatterException {
  // process in descending order so the replacement ranges aren't perturbed if any replacements
  // differ in size from the input
  Map<Range<Integer>,String> ranges = replacementMap.asDescendingMapOfRanges();
  if (ranges.isEmpty()) {
    return javaInput;
  }
  StringBuilder sb = new StringBuilder(javaInput.getText());
  for (Entry<Range<Integer>,String> entry : ranges.entrySet()) {
    Range<Integer> range = entry.getKey();
    sb.replace(range.lowerEndpoint(),entry.getValue());
  }
  return new JavaInput(sb.toString());
}
项目:jpmml-evaluator    文件:DiscretizationUtil.java   
static
private RangeMap<Double,String> parseDiscretize(Discretize discretize){
    RangeMap<Double,String> result = TreeRangeMap.create();

    List<DiscretizeBin> discretizeBins = discretize.getDiscretizeBins();
    for(DiscretizeBin discretizeBin : discretizeBins){
        Interval interval = discretizeBin.getInterval();
        if(interval == null){
            throw new MissingAttributeException(discretizeBin,PMMLAttributes.DISCRETIZEBIN_INTERVAL);
        }

        Range<Double> range = toRange(interval);

        String binValue = discretizeBin.getBinValue();
        if(binValue == null){
            throw new MissingAttributeException(discretizeBin,PMMLAttributes.DISCRETIZEBIN_BINVALUE);
        }

        result.put(range,binValue);
    }

    return result;
}
项目:levelup-java-exercises    文件:BankCharges.java   
public static void main(String[] args) {

        // define rages for checks
        RangeMap<Integer,Double> checkFee = TreeRangeMap.create();
        checkFee.put(Range.closed(0,19),.1);
        checkFee.put(Range.closed(20,39),.8);
        checkFee.put(Range.closed(40,59),.6);
        checkFee.put(Range.closed(60,Integer.MAX_VALUE),.4);

        // Create a Scanner object for keyboard input.
        Scanner keyboard = new Scanner(System.in);

        // Get the number of checks written.
        System.out.print("Enter the number of checks written " + "this month: ");
        int numChecks = keyboard.nextInt();

        //close scanner
        keyboard.close();

        // calculate total fee
        double total = BASE_FEE + (checkFee.get(numChecks) * numChecks); 

        // Display the total bank fees.
        System.out.printf("The total fees are $%.2f\n",total);
    }
项目:tikv-client-lib-java    文件:RegionManager.java   
public RegionCache(ReadOnlyPDClient pdClient) {
  regionCache = new HashMap<>();
  storeCache = new HashMap<>();

  keyToRegionIdCache = TreeRangeMap.create();
  this.pdClient = pdClient;
}
项目:owsi-core-parent    文件:AbstractExcelTableExport.java   
/**
 * Finalise la création de la feuille de calcul,notamment en demandant le
 * redimensionnement automatique des colonnes.
 * 
 * @param sheet feuilles de calcul
 * @param columnInfos collection contenant les informations de colonnes
 * @param landscapePrintSetup définit si la feuille est imprimée en paysage ou non
 */
protected void finalizeSheet(Sheet sheet,Collection<ColumnInformation> columnInfos,boolean landscapePrintSetup) {
    RangeMap<Integer,ColumnInformation> map = TreeRangeMap.create();
    int index = 0;
    for (ColumnInformation column : columnInfos) {
        map.put(Range.singleton(index),column);
        ++index;
    }
    finalizeSheet(sheet,map,landscapePrintSetup);
}
项目:pdptw-dataset-generator    文件:DatasetGenerator.java   
/**
 * Sets the dynamism levels.
 * @param levels At least one level must be given. The default level is
 *          <code>.5</code>.
 * @return This,as per the builder pattern.
 */
public Builder setDynamismLevels(Iterable<Double> levels) {
  checkArgument(Iterables.size(levels) > 0);
  final RangeSet<Double> rangeSet = TreeRangeSet.create();
  final Set<Range<Double>> dynamismLevelsB = new LinkedHashSet<>();
  final RangeMap<Double,Double> map = TreeRangeMap.create();
  for (final Double d : levels) {
    checkArgument(d >= 0d && d <= 1d);
    final Range<Double> newRange = createDynRange(d);
    checkArgument(
      rangeSet.subRangeSet(newRange).isEmpty(),"Can not add dynamism level %s,it is too close to another level.",d);
    rangeSet.add(newRange);
    dynamismLevelsB.add(newRange);
    map.put(newRange,d);
  }

  final SetMultimap<TimeSeriesType,Range<Double>> timeSeriesTypes =
    LinkedHashMultimap
      .<TimeSeriesType,Range<Double>>create();

  for (final Range<Double> r : dynamismLevelsB) {
    checkArgument(DYNAMISM_MAP.get(r.lowerEndpoint()) != null);
    checkArgument(DYNAMISM_MAP.get(r.lowerEndpoint()) == DYNAMISM_MAP.get(r
      .upperEndpoint()));

    timeSeriesTypes.put(DYNAMISM_MAP.get(r.lowerEndpoint()),r);
  }
  dynamismLevels = ImmutableSetMultimap.copyOf(timeSeriesTypes);
  dynamismRangeMap = ImmutableRangeMap.copyOf(map);
  return this;
}
项目:refactor-faster    文件:DescriptionBasedDiff.java   
private DescriptionBasedDiff(JCCompilationUnit compilationUnit) {
  this.compilationUnit = checkNotNull(compilationUnit);
  this.sourcePath = compilationUnit.getSourceFile().toUri().getPath();
  this.importsToAdd = new HashSet<>();
  this.importsToRemove = new HashSet<>();
  this.endPosMap = JDKCompatible.getEndPosMap(compilationUnit);
  this.replacements = TreeRangeMap.create();
}
项目:google-java-format    文件:RemoveUnusedImports.java   
/** Construct replacements to fix unused imports. */
private static RangeMap<Integer,String> buildReplacements(
    String contents,JCCompilationUnit unit,Set<String> usedNames,Multimap<String,Range<Integer>> usedInJavadoc) {
  RangeMap<Integer,String> replacements = TreeRangeMap.create();
  for (JCImport importTree : unit.getImports()) {
    String simpleName = getSimpleName(importTree);
    if (!isUnused(unit,usedNames,usedInJavadoc,importTree,simpleName)) {
      continue;
    }
    // delete the import
    int endPosition = importTree.getEndPosition(unit.endPositions);
    endPosition = Math.max(CharMatcher.isNot(' ').indexIn(contents,endPosition),endPosition);
    String sep = Newlines.guessLineSeparator(contents);
    if (endPosition + sep.length() < contents.length()
        && contents.subSequence(endPosition,endPosition + sep.length()).equals(sep)) {
      endPosition += sep.length();
    }
    replacements.put(Range.closedOpen(importTree.getStartPosition(),"");
    // fully qualify any javadoc references with the same simple name as a deleted
    // non-static import
    if (!importTree.isStatic()) {
      for (Range<Integer> docRange : usedInJavadoc.get(simpleName)) {
        if (docRange == null) {
          continue;
        }
        String replaceWith = importTree.getQualifiedIdentifier().toString();
        replacements.put(docRange,replaceWith);
      }
    }
  }
  return replacements;
}
项目:gatk    文件:GVCFWriter.java   
/**
 * Create {@link HomRefBlock}s which will collectively accept variants of any genotype quality
 *
 * Each individual block covers a band of genotype qualities with the splits between bands occurring at values in {@code gqPartitions}.
 * There will be {@code gqPartitions.size() +1} bands produced covering the entire possible range of genotype qualities from 0 to {@link VCFConstants#MAX_GENOTYPE_QUAL}.
 *
 * @param gqPartitions proposed GQ partitions
 * @return a list of HomRefBlocks accepting bands of genotypes qualities split at the points specified in gqPartitions
 */
@VisibleForTesting
static RangeMap<Integer,Range<Integer>> parsePartitions(final List<Integer> gqPartitions) {
    Utils.nonEmpty(gqPartitions);
    Utils.containsNoNull(gqPartitions,"The list of GQ partitions contains a null integer");
    final RangeMap<Integer,Range<Integer>> result = TreeRangeMap.create();
    int lastThreshold = 0;
    for (final Integer value : gqPartitions) {
        if (value < 0) {
            throw new IllegalArgumentException("The list of GQ partitions contains a non-positive integer.");
        } else if (value > MAX_GENOTYPE_QUAL + 1) {
            throw new IllegalArgumentException(String.format("The value %d in the list of GQ partitions is greater than VCFConstants.MAX_GENOTYPE_QUAL + 1 = %d.",value,MAX_GENOTYPE_QUAL + 1));
        } else if (value < lastThreshold) {
            throw new IllegalArgumentException(String.format("The list of GQ partitions is out of order. Previous value is %d but the next is %d.",lastThreshold,value));
        } else if (value == lastThreshold) {
            throw new IllegalArgumentException(String.format("The value %d appears more than once in the list of GQ partitions.",value));
        }

        result.put(Range.closedOpen(lastThreshold,value),Range.closedOpen(lastThreshold,value));
        lastThreshold = value;
    }

    if (lastThreshold <= MAX_GENOTYPE_QUAL) {
        result.put(Range.closedOpen(lastThreshold,MAX_GENOTYPE_QUAL + 1),MAX_GENOTYPE_QUAL + 1));
    }

    return result;
}
项目:java-util-examples    文件:RangeMapExample.java   
@Test
public void google_guava_range_map_example () {

    RangeMap<Integer,String> gradeScale = TreeRangeMap.create();
    gradeScale.put(Range.closed(0,60),"F");
    gradeScale.put(Range.closed(61,70),"D");
    gradeScale.put(Range.closed(71,80),"C");
    gradeScale.put(Range.closed(81,90),"B");
    gradeScale.put(Range.closed(91,100),"A");

    String grade = gradeScale.get(77);

    assertEquals("C",grade);
}
项目:Refaster    文件:DescriptionBasedDiff.java   
private DescriptionBasedDiff(JCCompilationUnit compilationUnit) {
  this.compilationUnit = checkNotNull(compilationUnit);
  this.sourcePath = compilationUnit.getSourceFile().toUri().getPath();
  this.importsToAdd = new HashSet<>();
  this.importsToRemove = new HashSet<>();
  this.endPosMap = JDKCompatible.getEndPosMap(compilationUnit);
  this.replacements = TreeRangeMap.create();
}
项目:levelup-java-examples    文件:RangeMapExample.java   
@Test
public void google_guava_range_map_example () {

    RangeMap<Integer,grade);
}
项目:assertj-guava    文件:RangeMapAssertBaseTest.java   
@Before
 public void setUp() {
actual = TreeRangeMap.create();
actual.put(Range.closedOpen(380,450),"violet");
actual.put(Range.closedOpen(450,495),"blue");
actual.put(Range.closedOpen(495,570),"green");
actual.put(Range.closedOpen(570,590),"yellow");
actual.put(Range.closedOpen(590,620),"orange");
actual.put(Range.closedOpen(620,750),"red");
 }
项目:graphouse    文件:MetricRetention.java   
private MetricRetention(Pattern pattern,String function) {
    this.pattern = pattern;
    this.function = function;
    this.ranges = TreeRangeMap.create();
}
项目:javaide    文件:ModifierOrderer.java   
/**
 * Reorders all modifiers in the given text and within the given character ranges to be in JLS
 * order.
 */
static JavaInput reorderModifiers(JavaInput javaInput,Collection<Range<Integer>> characterRanges)
        throws FormatterException {
    if (javaInput.getTokens().isEmpty()) {
        // There weren't any tokens,possible because of a lexing error.
        // Errors about invalid input will be reported later after parsing.
        return javaInput;
    }
    RangeSet<Integer> tokenRanges = javaInput.characterRangesToTokenRanges(characterRanges);
    Iterator<? extends Token> it = javaInput.getTokens().iterator();
    TreeRangeMap<Integer,String> replacements = TreeRangeMap.create();
    while (it.hasNext()) {
        Token token = it.next();
        if (!tokenRanges.contains(token.getTok().getIndex())) {
            continue;
        }
        Modifier mod = asModifier(token);
        if (mod == null) {
            continue;
        }

        List<Token> modifierTokens = new ArrayList<>();
        List<Modifier> mods = new ArrayList<>();

        int begin = token.getTok().getPosition();
        mods.add(mod);
        modifierTokens.add(token);

        int end = -1;
        while (it.hasNext()) {
            token = it.next();
            mod = asModifier(token);
            if (mod == null) {
                break;
            }
            mods.add(mod);
            modifierTokens.add(token);
            end = token.getTok().getPosition() + token.getTok().length();
        }

        if (!Ordering.natural().isOrdered(mods)) {
            Collections.sort(mods);
            StringBuilder replacement = new StringBuilder();
            for (int i = 0; i < mods.size(); i++) {
                if (i > 0) {
                    addTrivia(replacement,modifierTokens.get(i).getToksBefore());
                }
                replacement.append(mods.get(i).toString());
                if (i < (modifierTokens.size() - 1)) {
                    addTrivia(replacement,modifierTokens.get(i).getToksAfter());
                }
            }
            replacements.put(Range.closedOpen(begin,end),replacement.toString());
        }
    }
    return applyReplacements(javaInput,replacements);
}
项目:util    文件:MapUtil.java   
/**
 * 以Guava TreeRangeMap实现的,一段范围的Key指向同一个Value的Map
 */
@SuppressWarnings("rawtypes")
public static <K extends Comparable,V> TreeRangeMap<K,V> createRangeMap() {
    return TreeRangeMap.create();
}
项目:pinto    文件:Cache.java   
public static List<DoubleStream> getCachedValues(String key,PeriodicRange<?> range,Function<PeriodicRange<?>,List<DoubleStream>> function) {
    @SuppressWarnings("unchecked")
    Periodicity<Period> freq = (Periodicity<Period>) range.periodicity();
    String wholeKey = key + ":" + range.periodicity().code();
    RangeMap<Long,CachedSeriesList> cache = null;
    synchronized (seriesCache) {
        if (range.clearCache() || !seriesCache.containsKey(wholeKey)) {
            seriesCache.put(wholeKey,TreeRangeMap.create());
        }
        cache = seriesCache.get(wholeKey);
    }
    synchronized (cache) {
        try {
            Range<Long> requestedRange = Range.closed(range.start().longValue(),range.end().longValue());
            Set<Range<Long>> toRemove = new HashSet<>();
            List<DoubleStream> chunkData = new ArrayList<>();
            long current = requestedRange.lowerEndpoint();
            long chunkStart = current;
            Optional<Long> expirationTime = Optional.empty();
            for (Map.Entry<Range<Long>,CachedSeriesList> e : cache.subRangeMap(requestedRange).asMapOfRanges()
                    .entrySet()) {
                toRemove.add(e.getKey());
                if(e.getValue().getExpirationTime().isPresent()) {
                    if(System.currentTimeMillis() > e.getValue().getExpirationTime().get()) {
                        break;
                    } else {
                        expirationTime = e.getValue().getExpirationTime();
                    }
                }
                long thisChunkStart = e.getValue().getRange().start().longValue();
                long thisChunkEnd = e.getValue().getRange().end().longValue();
                chunkStart = Long.min(chunkStart,thisChunkStart);
                if (current < thisChunkStart) {
                    concat(chunkData,function.apply(freq.range(current,thisChunkStart - 1,false)));
                }
                concat(chunkData,e.getValue().getSeries());
                current = thisChunkEnd + 1;
            }
            if (current <= requestedRange.upperEndpoint()) {
                concat(chunkData,requestedRange.upperEndpoint(),false)));
                current = requestedRange.upperEndpoint() + 1;
            }
            toRemove.stream().forEach(cache::remove);
            long now = freq.from(LocalDate.now()).longValue();
            if(now > chunkStart) {
                long endOfPast = Math.min(now - 1,current - 1);
                cache.put(Range.closed(chunkStart,endOfPast),new CachedSeriesList(freq.range(chunkStart,endOfPast,false),dup(chunkData,(int) (1 + endOfPast - chunkStart)),Optional.empty()));
            }
            if(current - 1 >= now) {
                long startOfNow = Math.max(now,chunkStart);
                cache.put(Range.closed(startOfNow,current - 1),new CachedSeriesList(freq.range(startOfNow,current - 1,(int) (startOfNow - chunkStart),(int) (current - startOfNow)),Optional.of(expirationTime.orElse(System.currentTimeMillis() + CURRENT_DATA_TIMEOUT))));
            }
            final long finalStart = chunkStart;
            return chunkData.stream()
                    .map(s -> s.skip(requestedRange.lowerEndpoint() - finalStart).limit(range.size()))
                    .collect(Collectors.toList());
        } catch (RuntimeException re) {
            seriesCache.remove(wholeKey);
            throw re;
        }
    }
}
项目:Wiab.pro    文件:BlockIndexImpl.java   
@Override
public RangeMap<RangeValue,String> load(SegmentId segmentId) throws Exception {
  return TreeRangeMap.create();
}
项目:google-java-format    文件:ModifierOrderer.java   
/**
 * Reorders all modifiers in the given text and within the given character ranges to be in JLS
 * order.
 */
static JavaInput reorderModifiers(JavaInput javaInput,Collection<Range<Integer>> characterRanges)
    throws FormatterException {
  if (javaInput.getTokens().isEmpty()) {
    // There weren't any tokens,possible because of a lexing error.
    // Errors about invalid input will be reported later after parsing.
    return javaInput;
  }
  RangeSet<Integer> tokenRanges = javaInput.characterRangesToTokenRanges(characterRanges);
  Iterator<? extends Token> it = javaInput.getTokens().iterator();
  TreeRangeMap<Integer,String> replacements = TreeRangeMap.create();
  while (it.hasNext()) {
    Token token = it.next();
    if (!tokenRanges.contains(token.getTok().getIndex())) {
      continue;
    }
    Modifier mod = asModifier(token);
    if (mod == null) {
      continue;
    }

    List<Token> modifierTokens = new ArrayList<>();
    List<Modifier> mods = new ArrayList<>();

    int begin = token.getTok().getPosition();
    mods.add(mod);
    modifierTokens.add(token);

    int end = -1;
    while (it.hasNext()) {
      token = it.next();
      mod = asModifier(token);
      if (mod == null) {
        break;
      }
      mods.add(mod);
      modifierTokens.add(token);
      end = token.getTok().getPosition() + token.getTok().length();
    }

    if (!Ordering.natural().isOrdered(mods)) {
      Collections.sort(mods);
      StringBuilder replacement = new StringBuilder();
      for (int i = 0; i < mods.size(); i++) {
        if (i > 0) {
          addTrivia(replacement,modifierTokens.get(i).getToksBefore());
        }
        replacement.append(mods.get(i).toString());
        if (i < (modifierTokens.size() - 1)) {
          addTrivia(replacement,modifierTokens.get(i).getToksAfter());
        }
      }
      replacements.put(Range.closedOpen(begin,replacement.toString());
    }
  }
  return applyReplacements(javaInput,replacements);
}
项目:assertj-guava    文件:RangeMapAssert_containsKeys_Test.java   
@Test
 public void should_fail_if_actual_is_null() {
expectException(AssertionError.class,actualIsNull());
TreeRangeMap<Integer,String> actual = null;
assertThat(actual).containsKeys(500,600,700);
 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


com.google.gson.internal.bind.ArrayTypeAdapter的实例源码
com.google.gson.JsonSyntaxException的实例源码
com.google.gson.JsonDeserializer的实例源码
com.google.gson.internal.ConstructorConstructor的实例源码
com.google.gson.JsonPrimitive的实例源码
com.google.gson.LongSerializationPolicy的实例源码
com.google.gson.internal.GsonInternalAccess的实例源码
com.google.gson.JsonIOException的实例源码
com.google.gson.internal.StringMap的实例源码
com.google.gson.JsonObject的实例源码
com.google.gson.internal.bind.TimeTypeAdapter的实例源码
com.google.gson.FieldAttributes的实例源码
com.google.gson.internal.bind.TreeTypeAdapter的实例源码
com.google.gson.internal.LinkedHashTreeMap的实例源码
com.google.gson.TypeAdapterFactory的实例源码
com.google.gson.JsonSerializer的实例源码
com.google.gson.FieldNamingPolicy的实例源码
com.google.gson.JsonElement的实例源码
com.google.gson.internal.JsonReaderInternalAccess的实例源码
com.google.gson.TypeAdapter的实例源码