com.google.common.collect.ImmutableList#Builder ( )源码实例Demo

下面列出了com.google.common.collect.ImmutableList#Builder ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: buck   文件: UnusedDependenciesFinder.java
static ImmutableList<DependencyAndExportedDeps> getDependencies(
    BuildRuleResolver buildRuleResolver, SortedSet<BuildRule> targets) {
  ImmutableList.Builder<DependencyAndExportedDeps> builder = ImmutableList.builder();
  for (BuildRule rule : targets) {
    BuildTargetAndSourcePaths targetAndSourcePaths =
        getBuildTargetAndSourcePaths(rule, buildRuleResolver);
    if (targetAndSourcePaths == null) {
      continue;
    }

    ImmutableList<DependencyAndExportedDeps> exportedDeps =
        rule instanceof ExportDependencies
            ? getDependencies(buildRuleResolver, ((ExportDependencies) rule).getExportedDeps())
            : ImmutableList.of();
    builder.add(new DependencyAndExportedDeps(targetAndSourcePaths, exportedDeps));
  }

  return builder.build();
}
 
源代码2 项目: bazel   文件: TargetCompleteEvent.java
@Override
public Collection<BuildEventId> getChildrenEvents() {
  ImmutableList.Builder<BuildEventId> childrenBuilder = ImmutableList.builder();
  for (Cause cause : getRootCauses().toList()) {
    childrenBuilder.add(cause.getIdProto());
  }
  if (isTest) {
    // For tests, announce all the test actions that will minimally happen (except for
    // interruption). If after the result of a test action another attempt is necessary,
    // it will be announced with the action that made the new attempt necessary.
    Label label = getLabel();
    for (int run = 0; run < Math.max(testParams.getRuns(), 1); run++) {
      for (int shard = 0; shard < Math.max(testParams.getShards(), 1); shard++) {
        childrenBuilder.add(BuildEventIdUtil.testResult(label, run, shard, configEventId));
      }
    }
    childrenBuilder.add(BuildEventIdUtil.testSummary(label, configEventId));
  }
  return childrenBuilder.build();
}
 
源代码3 项目: buck   文件: CxxWriteArgsToFileStep.java
static ImmutableList<String> stringify(
    ImmutableCollection<Arg> args,
    CanonicalCellName currentCellName,
    SourcePathResolverAdapter pathResolver,
    boolean useUnixPathSeparator) {
  ImmutableList.Builder<String> builder = ImmutableList.builder();
  for (Arg arg : args) {
    if (arg instanceof FileListableLinkerInputArg) {
      ((FileListableLinkerInputArg) arg)
          .appendToCommandLineRel(
              builder::add, currentCellName, pathResolver, useUnixPathSeparator);
    } else if (arg instanceof SourcePathArg) {
      ((SourcePathArg) arg)
          .appendToCommandLineRel(
              builder::add, currentCellName, pathResolver, useUnixPathSeparator);
    } else if (arg instanceof CompositeArg) {
      ((CompositeArg) arg)
          .appendToCommandLineRel(
              builder::add, currentCellName, pathResolver, useUnixPathSeparator);
    } else {
      arg.appendToCommandLine(builder::add, pathResolver);
    }
  }
  return builder.build();
}
 
源代码4 项目: buck   文件: AppleSimulatorDiscoveryTest.java
@Test
public void appleSimulatorsDiscoveredFromRetrySimctlList()
    throws IOException, InterruptedException {
  ProcessExecutorParams processExecutorParams =
      ProcessExecutorParams.builder()
          .setCommand(ImmutableList.of("path/to/simctl", "list"))
          .build();

  ImmutableList.Builder<Map.Entry<ProcessExecutorParams, FakeProcess>> fakeProcessesBuilder =
      ImmutableList.builder();
  fakeProcessesBuilder.add(
      new SimpleImmutableEntry<>(processExecutorParams, new FakeProcess(42, "", "")));
  fakeProcessesBuilder.add(
      new SimpleImmutableEntry<>(processExecutorParams, new FakeProcess(42, "", "")));
  fakeProcessesBuilder.add(
      new SimpleImmutableEntry<>(processExecutorParams, new FakeProcess(0, "", "")));

  FakeProcessExecutor fakeProcessExecutor = new FakeProcessExecutor(fakeProcessesBuilder.build());

  AppleSimulatorDiscovery.discoverAppleSimulators(
      fakeProcessExecutor, Paths.get("path/to/simctl"));
}
 
@Test
public void test_batched_add() {
    final ImmutableList.Builder<PUBLISH> publishes = ImmutableList.builder();
    for (int i = 0; i < 10; i++) {
        publishes.add(createPublish(1, QoS.AT_LEAST_ONCE, "topic" + i));
    }
    persistence.add("client", false, publishes.build(), 100, DISCARD, false, 0);

    assertEquals(10, persistence.size("client", false, 0));

    final ImmutableList<PUBLISH> all =
            persistence.readNew("client", false, ImmutableIntArray.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 10000L, 0);

    assertEquals(10, all.size());
    assertEquals("topic0", all.get(0).getTopic());
    assertEquals("topic1", all.get(1).getTopic());
}
 
源代码6 项目: copybara   文件: GitRepository.java
/**
 * Find submodules information for the current repository.
 *
 * @param currentRemoteUrl remote url associated with the repository. It will be used to
 * resolve relative URLs (for example: url = ../foo).
 */
Iterable<Submodule> listSubmodules(String currentRemoteUrl) throws RepoException {
  ImmutableList.Builder<Submodule> result = ImmutableList.builder();
  for (String submoduleName : getSubmoduleNames()) {
    String path = getSubmoduleField(submoduleName, "path");

    if (path == null) {
      throw new RepoException("Path is required for submodule " + submoduleName);
    }
    String url = getSubmoduleField(submoduleName, "url");
    if (url == null) {
      throw new RepoException("Url is required for submodule " + submoduleName);
    }
    String branch = getSubmoduleField(submoduleName, "branch");
    if (branch != null && branch.equals(".")) {
      branch = "HEAD";
    }
    FileUtil.checkNormalizedRelative(path);
    // If the url is relative, construct a url using the parent module remote url.
    if (url.startsWith("../")) {
      url = siblingUrl(currentRemoteUrl, submoduleName, url.substring(3));
    } else if (url.startsWith("./")) {
      url = siblingUrl(currentRemoteUrl, submoduleName, url.substring(2));
    }
    try {
      result.add(new Submodule(validateUrl(url), submoduleName, branch, path));
    } catch (ValidationException e) {
      throw new RepoException("Invalid url: " + url, e);
    }
  }
  return result.build();
}
 
private static ImmutableList<FieldInitializer> getAttrInitializers(
    Map<String, Integer> attrAssignments, SortedMap<String, ResourceLinkageInfo> sortedFields) {
  ImmutableList.Builder<FieldInitializer> initList = ImmutableList.builder();
  for (Map.Entry<String, ResourceLinkageInfo> entry : sortedFields.entrySet()) {
    String field = entry.getKey();
    ResourceLinkageInfo linkageInfo = entry.getValue();
    int attrId = attrAssignments.get(field);
    initList.add(
        IntFieldInitializer.of(
            linkageInfo.dependencyInfo(), linkageInfo.visibility(), field, attrId));
  }
  return initList.build();
}
 
源代码8 项目: incubator-pinot   文件: QuantileDigest.java
/**
 * Gets the values at the specified quantiles +/- maxError. The list of quantiles must be sorted
 * in increasing order, and each value must be in the range [0, 1]
 */
public List<Long> getQuantiles(List<Double> quantiles) {
  checkArgument(Ordering.natural().isOrdered(quantiles), "quantiles must be sorted in increasing order");
  for (double quantile : quantiles) {
    checkArgument(quantile >= 0 && quantile <= 1, "quantile must be between [0,1]");
  }

  final ImmutableList.Builder<Long> builder = ImmutableList.builder();
  final PeekingIterator<Double> iterator = Iterators.peekingIterator(quantiles.iterator());

  postOrderTraversal(root, new Callback() {
    private double sum = 0;

    @Override
    public boolean process(Node node) {
      sum += node.weightedCount;

      while (iterator.hasNext() && sum > iterator.peek() * weightedCount) {
        iterator.next();

        // we know the max value ever seen, so cap the percentile to provide better error
        // bounds in this case
        long value = Math.min(node.getUpperBound(), max);

        builder.add(value);
      }

      return iterator.hasNext();
    }
  });

  // we finished the traversal without consuming all quantiles. This means the remaining quantiles
  // correspond to the max known value
  while (iterator.hasNext()) {
    builder.add(max);
    iterator.next();
  }

  return builder.build();
}
 
源代码9 项目: netcdf-java   文件: Grib2Tables.java
public static ImmutableList<Grib2Tables> getAllRegisteredTables() {
  ImmutableList.Builder<Grib2Tables> builder = ImmutableList.builder();
  for (Grib2TableConfig config : Grib2TableConfig.getTables()) {
    builder.add(build(config));
  }
  return builder.build();
}
 
源代码10 项目: curiostack   文件: FieldScopeLogic.java
@Override
final FieldScopeLogic subScopeImpl(
    Descriptor rootDescriptor, FieldDescriptorOrUnknown fieldDescriptorOrUnknown) {
  ImmutableList.Builder<FieldScopeLogic> builder =
      ImmutableList.builderWithExpectedSize(elements.size());
  for (FieldScopeLogic elem : elements) {
    builder.add(elem.subScope(rootDescriptor, fieldDescriptorOrUnknown));
  }
  return newLogicOfSameType(builder.build());
}
 
源代码11 项目: redis-mock   文件: CommandExecutor.java
public Slice mget(List<Slice> params) throws WrongNumberOfArgumentsException {
    checkArgumentsNumberGreater(params, 0);

    ImmutableList.Builder<Slice> builder = new ImmutableList.Builder<Slice>();
    for (Slice key : params) {
        builder.add(Response.bulkString(base.rawGet(key)));

    }
    return Response.array(builder.build());
}
 
private List<OGCGeometry> makeGeometries()
{
    ImmutableList.Builder<OGCGeometry> geometries = ImmutableList.builder();
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            geometries.add(new OGCPoint(new Point(-10 + i, -10 + j), null));
        }
    }

    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            geometries.add(new OGCPoint(new Point(-10 + 2 * i, 2 * j), null));
        }
    }

    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            geometries.add(new OGCPoint(new Point(2.5 * i, -10 + 2.5 * j), null));
        }
    }

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            geometries.add(new OGCPoint(new Point(5 * i, 5 * j), null));
        }
    }

    return geometries.build();
}
 
源代码13 项目: buck   文件: OcamlMLCompileStep.java
@Override
protected ImmutableList<String> getShellCommandInternal(ExecutionContext context) {
  ImmutableList.Builder<String> cmd =
      ImmutableList.<String>builder()
          .addAll(args.ocamlCompiler.getCommandPrefix(resolver))
          .addAll(OcamlCompilables.DEFAULT_OCAML_FLAGS);

  if (args.stdlib.isPresent()) {
    cmd.add("-nostdlib", OcamlCompilables.OCAML_INCLUDE_FLAG, args.stdlib.get());
  }

  String ext = Files.getFileExtension(args.input.toString());
  String dotExt = "." + ext;
  boolean isImplementation =
      dotExt.equals(OcamlCompilables.OCAML_ML) || dotExt.equals(OcamlCompilables.OCAML_RE);
  boolean isReason =
      dotExt.equals(OcamlCompilables.OCAML_RE) || dotExt.equals(OcamlCompilables.OCAML_REI);

  cmd.add("-cc", args.cCompiler.get(0))
      .addAll(
          MoreIterables.zipAndConcat(
              Iterables.cycle("-ccopt"), args.cCompiler.subList(1, args.cCompiler.size())))
      .add("-c")
      .add("-annot")
      .add("-bin-annot")
      .add("-o", args.output.toString())
      .addAll(Arg.stringify(args.flags, resolver));

  if (isReason && isImplementation) {
    cmd.add("-pp").add("refmt").add("-intf-suffix").add("rei").add("-impl");
  }
  if (isReason && !isImplementation) {
    cmd.add("-pp").add("refmt").add("-intf");
  }

  cmd.add(args.input.toString());
  return cmd.build();
}
 
源代码14 项目: Bats   文件: RelBuilder.java
/** Returns references to fields for a given list of input ordinals. */
public ImmutableList<RexNode> fields(List<? extends Number> ordinals) {
    final ImmutableList.Builder<RexNode> nodes = ImmutableList.builder();
    for (Number ordinal : ordinals) {
        RexNode node = field(1, 0, ordinal.intValue(), false);
        nodes.add(node);
    }
    return nodes.build();
}
 
源代码15 项目: tajo   文件: TypeConverter.java
public static Type convert(TypeDesc type) {
  if (type.getDataType().getType() == TajoDataTypes.Type.RECORD) {
    ImmutableList.Builder<Field> fields = ImmutableList.builder();
    for (Column c : type.getNestedSchema().getRootColumns()) {
      fields.add(FieldConverter.convert(c));
    }
    return Record(fields.build());
  } else {
    return convert(type.dataType);
  }
}
 
源代码16 项目: api-compiler   文件: ConfigGeneratorToolTest.java
private void test(String baseName, @Nullable String extensionName, boolean outputWarnings,
    List<String> experiments) throws Exception {
  TestDataLocator locator = TestDataLocator.create(getClass());

  ImmutableList.Builder<String> protoFilesBuilder = ImmutableList.builder();
  protoFilesBuilder.add(baseName + ".proto");
  TestConfig testConfig = new TestConfig(locator, tempDir.getRoot().getPath(),
      protoFilesBuilder.build());

  TestConfig extensionTestConfig = null;
  if (extensionName != null) {
    extensionTestConfig = new TestConfig(locator, extensionTempDir.getRoot().getPath(),
        ImmutableList.of(extensionName + ".proto"));
  }

  List<String> configFiles = new ArrayList<>();
  configFiles.add(baseName + ".yaml");
  final TestConfig testConfigCopy = testConfig;
  configFiles = FluentIterable.from(configFiles).transform(
      new Function<String, String>() {
        @Override
        public String apply(String file) {
          return testConfigCopy.copyTestDataAndGetPath(file).toString();
        }
      }).toList();

  ToolOptions options = ToolOptions.create();
  options.set(
      ConfigGeneratorDriver.TXT_OUT,
      (new File(tempDir.getRoot().getPath(), "textout")).getAbsolutePath());
  options.set(
      ConfigGeneratorDriver.BIN_OUT,
      (new File(tempDir.getRoot().getPath(), "binout")).getAbsolutePath());
  options.set(
      ConfigGeneratorDriver.JSON_OUT,
      (new File(tempDir.getRoot().getPath(), "jsonout")).getAbsolutePath());
  options.set(ToolOptions.DESCRIPTOR_SET, testConfig.getDescriptorFile().toString());
  options.set(ToolOptions.CONFIG_FILES, configFiles);
  options.set(
      ConfigGeneratorFromProtoDescriptor.SUPPRESS_WARNINGS, isSuppressWarningsTest(baseName));
  options.set(ToolOptions.EXPERIMENTS, experiments);
  if (extensionTestConfig != null) {
    options.set(
        ToolOptions.EXTENSION_DESCRIPTOR_SET, extensionTestConfig.getDescriptorFile().toString());
  }

  if (isLibraryWithError(baseName)) {
    options.set(ConfigGeneratorFromProtoDescriptor.NAME, "foobar");
  }
  if (isDnsNameTest(baseName)){
    options.set(ConfigGeneratorFromProtoDescriptor.NAME, "foobar");
  }
  if (isSuppressWarningsTest(baseName)){
    options.set(ConfigGeneratorFromProtoDescriptor.NAME, "test");
  }
  ConfigGeneratorDriverForTest tool = new ConfigGeneratorDriverForTest(options);
  tool.runTest();
  if (!tool.hasErrors()) {
    // Output diag into baseline file, if needed.
    if (outputWarnings) {
      printDiags(tool.getDiags(), true);
    }
    Service.Builder serviceBuilder =
        ServiceConfigTestingUtil.clearIrrelevantData(tool.getServiceConfig().toBuilder());
    testOutput().println(
        "============== file: normalized config without derived data ==============");
    testOutput().println(TextFormatForTest.INSTANCE.printToString(serviceBuilder.build()));

    // Regenerate the model from service config and ensure it builds without errors.
    Service generatedServiceConfig = tool.getServiceConfig();
    Model model = Model.create(generatedServiceConfig);
    StandardSetup.registerStandardConfigAspects(model);
    StandardSetup.registerStandardProcessors(model);
    model.establishStage(Normalized.KEY);
    if (model.getDiagReporter().getDiagCollector().hasErrors()) {
      printDiags(model.getDiagReporter().getDiagCollector().getDiags(), false);
    } else {
      testOutput().println(
          "============== Successfully regenerated service config ==============");
    }
  } else {
    printDiags(tool.getDiags(), true);
  }
}
 
源代码17 项目: supl-client   文件: GNSS_MeasurementForOneGNSS.java
@Override public Iterable<? extends SequenceComponent>
                                                getExtensionComponents() {
ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder();
  
  return builder.build();
}
 
源代码18 项目: supl-client   文件: GNSS_AlmanacSupport.java
@Override public Iterable<? extends SequenceComponent> getComponents() {
  ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder();
  
  builder.add(new SequenceComponent() {
        Asn1Tag tag = Asn1Tag.fromClassAndNumber(2, 0);

        @Override public boolean isExplicitlySet() {
          return getAlmanacModel() != null;
        }

        @Override public boolean hasDefaultValue() {
          return false;
        }

        @Override public boolean isOptional() {
          return true;
        }

        @Override public Asn1Object getComponentValue() {
          return getAlmanacModel();
        }

        @Override public void setToNewInstance() {
          setAlmanacModelToNewInstance();
        }

        @Override public Collection<Asn1Tag> getPossibleFirstTags() {
          return tag == null ? GNSS_AlmanacSupport.almanacModelType.getPossibleFirstTags() : ImmutableList.of(tag);
        }

        @Override
        public Asn1Tag getTag() {
          return tag;
        }

        @Override
        public boolean isImplicitTagging() {
          return true;
        }

        @Override public String toIndentedString(String indent) {
              return "almanacModel : "
                  + getAlmanacModel().toIndentedString(indent);
            }
      });
  
  return builder.build();
}
 
源代码19 项目: buck   文件: GoTest.java
private ImmutableList<TestResultSummary> parseTestResults() throws IOException {
  ImmutableList.Builder<TestResultSummary> summariesBuilder = ImmutableList.builder();
  CharsetDecoder decoder = Charsets.UTF_8.newDecoder();
  decoder.onMalformedInput(CodingErrorAction.REPLACE);
  decoder.replaceWith(NON_PRINTABLE_REPLACEMENT);
  try (BufferedReader reader =
      new BufferedReader(
          new InputStreamReader(
              Files.newInputStream(getProjectFilesystem().resolve(getPathToTestResults())),
              decoder))) {
    Set<String> currentTests = new HashSet<>();
    List<String> stdout = new ArrayList<>();
    List<String> stackTrace = new ArrayList<>();
    String line = reader.readLine();
    while (line != null) {
      Matcher matcher;
      if ((matcher = TEST_START_PATTERN.matcher(line)).matches()) {
        currentTests.add(matcher.group("name"));
        line = reader.readLine();
      } else if ((matcher = TEST_FINISHED_PATTERN.matcher(line)).matches()) {
        if (!currentTests.contains(matcher.group("name"))) {
          throw new RuntimeException(
              String.format(
                  "Error parsing test output: test case end '%s' does not match any start in [%s]",
                  matcher.group("name"), Joiner.on(", ").join(currentTests)));
        }

        ResultType result = ResultType.FAILURE;
        if ("PASS".equals(matcher.group("status"))) {
          result = ResultType.SUCCESS;
        } else if ("SKIP".equals(matcher.group("status"))) {
          result = ResultType.ASSUMPTION_VIOLATION;
        }

        double timeTaken = 0.0;
        try {
          timeTaken = Float.parseFloat(matcher.group("duration"));
        } catch (NumberFormatException ex) {
          Throwables.throwIfUnchecked(ex);
        }
        line = reader.readLine();
        // Looking ahead to capture error messages
        while (line != null
            && !TEST_START_PATTERN.matcher(line).matches()
            && !TEST_FINISHED_PATTERN.matcher(line).matches()
            && !line.equals("PASS")
            && !line.equals("FAIL")) {
          stackTrace.add(line);
          line = reader.readLine();
        }
        summariesBuilder.add(
            new TestResultSummary(
                "go_test",
                matcher.group("name"),
                result,
                (long) (timeTaken * 1000),
                "",
                Joiner.on(System.lineSeparator()).join(stackTrace),
                Joiner.on(System.lineSeparator()).join(stdout),
                ""));

        currentTests.remove(matcher.group("name"));
        stdout.clear();
        stackTrace.clear();
      } else {
        stdout.add(line);
        line = reader.readLine();
      }
    }

    for (String testName : currentTests) {
      // This can happen in case of e.g. a panic.
      summariesBuilder.add(
          new TestResultSummary(
              "go_test",
              testName,
              ResultType.FAILURE,
              0,
              "incomplete",
              "",
              Joiner.on(System.lineSeparator()).join(stdout),
              ""));
    }
  }
  return summariesBuilder.build();
}
 
源代码20 项目: supl-client   文件: SystemInfoAssistData.java
@Override public Iterable<? extends SequenceComponent>
                                                getExtensionComponents() {
ImmutableList.Builder<SequenceComponent> builder = ImmutableList.builder();
  
  return builder.build();
}