类com.google.common.collect.ImmutableCollection.Builder源码实例Demo

下面列出了怎么用com.google.common.collect.ImmutableCollection.Builder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: buck   文件: JavaLibraryDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    JavaLibraryDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javacFactory.addParseTimeDeps(
      targetGraphOnlyDepsBuilder, constructorArg, buildTarget.getTargetConfiguration());

  unresolvedInferPlatform(toolchainProvider, buildTarget.getTargetConfiguration())
      .ifPresent(
          p ->
              UnresolvedInferPlatform.addParseTimeDepsToInferFlavored(
                  targetGraphOnlyDepsBuilder, buildTarget, p));
}
 
源代码2 项目: buck   文件: GoLibraryDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    GoLibraryDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  GoToolchain toolchain = getGoToolchain(buildTarget.getTargetConfiguration());
  toolchain
      .getPlatformFlavorDomain()
      .getValue(buildTarget)
      .ifPresent(
          platform ->
              targetGraphOnlyDepsBuilder.addAll(
                  CxxPlatforms.getParseTimeDeps(
                      buildTarget.getTargetConfiguration(), platform.getCxxPlatform())));
}
 
源代码3 项目: buck   文件: NdkLibraryDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    NdkLibraryDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  toolchainProvider
      .getByNameIfPresent(
          NdkCxxPlatformsProvider.DEFAULT_NAME,
          buildTarget.getTargetConfiguration(),
          NdkCxxPlatformsProvider.class)
      .ifPresent(
          ndkCxxPlatformsProvider ->
              ndkCxxPlatformsProvider
                  .getNdkCxxPlatforms()
                  .values()
                  .forEach(
                      platform ->
                          extraDepsBuilder.addAll(
                              platform.getParseTimeDeps(buildTarget.getTargetConfiguration()))));
}
 
源代码4 项目: metanome-algorithms   文件: CollectionUtils.java
public static <T> Collection<Tuple2<T, T>> crossProduct(List<T> list) {
	Builder<Tuple2<T, T>> result = ImmutableList.builder();
	int size = list.size();
	for (int i = 0; i < size; i++) {
		T left = list.get(i);
		Iterable<T> remaining = list.subList(i, size);
		Seq.of(left)
			.crossJoin(remaining)
			.forEach(result::add);
	}
	return result.build();
}
 
@Override
protected Builder<Object> createBuilder() {
    /* This is suboptimal. See the considerations in ImmutableSortedSetDeserializer. */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    Builder<Object> builder =  (Builder) ImmutableSortedMultiset.naturalOrder();
    return builder;
}
 
@SuppressWarnings("unchecked")
@Override
protected Builder<Object> createBuilder() {
    /* Not quite sure what to do with sorting/ordering; may require better support either
     * via annotations, or via custom serialization (bean style that includes ordering
     * aspects)
     */
    @SuppressWarnings("rawtypes")
    ImmutableSortedSet.Builder<?> builderComp = ImmutableSortedSet.<Comparable> naturalOrder();
    ImmutableSortedSet.Builder<Object> builder = (ImmutableSortedSet.Builder<Object>) builderComp;
    return builder;
}
 
源代码7 项目: tracecompass   文件: StateSystem.java
@Override
public List<@NonNull Integer> getQuarks(int startingNodeQuark, String... pattern) {
    Builder<@NonNull Integer> builder = ImmutableSet.builder();
    if (pattern.length > 0) {
        getQuarks(builder, startingNodeQuark, Arrays.asList(pattern));
    } else {
        builder.add(startingNodeQuark);
    }
    return builder.build().asList();
}
 
源代码8 项目: buck   文件: JavaTestRunnerDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    JavaTestRunnerDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javacFactory.addParseTimeDeps(
      targetGraphOnlyDepsBuilder, constructorArg, buildTarget.getTargetConfiguration());
}
 
源代码9 项目: buck   文件: JarGenruleDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    JarGenruleDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javaOptions
      .apply(buildTarget.getTargetConfiguration())
      .addParseTimeDeps(targetGraphOnlyDepsBuilder, buildTarget.getTargetConfiguration());
}
 
源代码10 项目: buck   文件: GroovyLibraryDescription.java
@Override
public BuildRule createBuildRule(
    BuildRuleCreationContextWithTargetGraph context,
    BuildTarget buildTarget,
    BuildRuleParams params,
    GroovyLibraryDescriptionArg args) {
  ActionGraphBuilder graphBuilder = context.getActionGraphBuilder();
  ProjectFilesystem projectFilesystem = context.getProjectFilesystem();
  JavacOptions javacOptions =
      JavacOptionsFactory.create(
          toolchainProvider
              .getByName(
                  JavacOptionsProvider.DEFAULT_NAME,
                  buildTarget.getTargetConfiguration(),
                  JavacOptionsProvider.class)
              .getJavacOptions(),
          buildTarget,
          graphBuilder,
          args);
  DefaultJavaLibraryRules defaultJavaLibraryRules =
      new DefaultJavaLibraryRules.Builder(
              buildTarget,
              projectFilesystem,
              context.getToolchainProvider(),
              params,
              graphBuilder,
              compilerFactory,
              javaBuckConfig,
              args)
          .setJavacOptions(javacOptions)
          .build();

  return JavaAbis.isAbiTarget(buildTarget)
      ? defaultJavaLibraryRules.buildAbi()
      : graphBuilder.addToIndex(defaultJavaLibraryRules.buildLibrary());
}
 
源代码11 项目: buck   文件: GroovyLibraryDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    AbstractGroovyLibraryDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  compilerFactory.addTargetDeps(
      buildTarget.getTargetConfiguration(), extraDepsBuilder, targetGraphOnlyDepsBuilder);
}
 
源代码12 项目: buck   文件: GoLibraryDescription.java
@Override
public BuildRule createBuildRule(
    BuildRuleCreationContextWithTargetGraph context,
    BuildTarget buildTarget,
    BuildRuleParams params,
    GoLibraryDescriptionArg args) {
  GoToolchain goToolchain = getGoToolchain(buildTarget.getTargetConfiguration());
  Optional<GoPlatform> platform = goToolchain.getPlatformFlavorDomain().getValue(buildTarget);
  ProjectFilesystem projectFilesystem = context.getProjectFilesystem();

  if (platform.isPresent()) {
    return GoDescriptors.createGoCompileRule(
        buildTarget,
        projectFilesystem,
        params,
        context.getActionGraphBuilder(),
        goBuckConfig,
        args.getPackageName()
            .map(Paths::get)
            .orElse(goBuckConfig.getDefaultPackageName(buildTarget)),
        args.getSrcs(),
        args.getCompilerFlags(),
        args.getAssemblerFlags(),
        platform.get(),
        new ImmutableList.Builder<BuildTarget>()
            .addAll(
                params.getDeclaredDeps().get().stream().map(BuildRule::getBuildTarget).iterator())
            .addAll(args.getExportedDeps())
            .build(),
        ImmutableList.of(),
        Collections.singletonList(ListType.GoFiles));
  }

  return new GoLibrary(buildTarget, projectFilesystem, params, args.getSrcs());
}
 
源代码13 项目: buck   文件: GwtBinaryDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    GwtBinaryDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javaOptions
      .apply(buildTarget.getTargetConfiguration())
      .addParseTimeDeps(targetGraphOnlyDepsBuilder, buildTarget.getTargetConfiguration());
}
 
源代码14 项目: buck   文件: NdkLibraryDescription.java
private Iterable<String> escapeForMakefile(
    ProjectFilesystem filesystem, boolean escapeInQuotes, Iterable<String> args) {
  ImmutableList.Builder<String> escapedArgs = ImmutableList.builder();

  for (String arg : args) {
    String escapedArg = arg;

    // The ndk-build makefiles make heavy use of the "eval" function to propagate variables,
    // which means we need to perform additional makefile escaping for *every* "eval" that
    // gets used.  Turns out there are three "evals", so we escape a total of four times
    // including the initial escaping.  Since the makefiles eventually hand-off these values
    // to the shell, we first perform bash escaping.
    //
    // Additionally to that Android NDK 16 has a fix that changes the escaping logic for some of
    // the flags, but not for all of them. This means some flags needs to be escaped with the old
    // logic (4 escapes) while other flags must be escaped using a simpler approach.
    // Github issue with the fix: https://github.com/android-ndk/ndk/issues/161

    escapedArg = Escaper.escapeAsShellString(escapedArg);

    if (escapeInQuotes) {
      escapedArg = Escaper.escapeWithQuotesAsMakefileValueString(escapedArg);
    } else {
      for (int i = 0; i < 4; i++) {
        escapedArg = Escaper.escapeAsMakefileValueString(escapedArg);
      }
    }

    // We run ndk-build from the root of the NDK, so fixup paths that use the relative path to
    // the buck out directory.
    if (arg.startsWith(filesystem.getBuckPaths().getBuckOut().toString())) {
      escapedArg = "$(BUCK_PROJECT_DIR)/" + escapedArg;
    }

    escapedArgs.add(escapedArg);
  }

  return escapedArgs.build();
}
 
源代码15 项目: buck   文件: NdkLibraryDescription.java
@VisibleForTesting
protected ImmutableSortedSet<SourcePath> findSources(
    ProjectFilesystem filesystem, Path buildRulePath) {
  ImmutableSortedSet.Builder<SourcePath> srcs = ImmutableSortedSet.naturalOrder();

  try {
    Path rootDirectory = filesystem.resolve(buildRulePath);
    Files.walkFileTree(
        rootDirectory,
        EnumSet.of(FileVisitOption.FOLLOW_LINKS),
        /* maxDepth */ Integer.MAX_VALUE,
        new SimpleFileVisitor<Path>() {
          @Override
          public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
              throws IOException {
            if (EXTENSIONS_REGEX.matcher(file.toString()).matches()) {
              srcs.add(
                  PathSourcePath.of(
                      filesystem, buildRulePath.resolve(rootDirectory.relativize(file))));
            }

            return super.visitFile(file, attrs);
          }
        });
  } catch (IOException e) {
    throw new RuntimeException(e);
  }

  return srcs.build();
}
 
源代码16 项目: buck   文件: AndroidAarDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    AndroidAarDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javacFactory.addParseTimeDeps(
      targetGraphOnlyDepsBuilder, null, buildTarget.getTargetConfiguration());
}
 
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    AndroidInstrumentationTestDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javaOptions
      .apply(buildTarget.getTargetConfiguration())
      .addParseTimeDeps(targetGraphOnlyDepsBuilder, buildTarget.getTargetConfiguration());
}
 
源代码18 项目: buck   文件: AndroidPrebuiltAarDescription.java
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    AndroidPrebuiltAarDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javacFactory.addParseTimeDeps(
      targetGraphOnlyDepsBuilder, null, buildTarget.getTargetConfiguration());
  AndroidTools.addParseTimeDepsToAndroidTools(
      toolchainProvider, buildTarget, targetGraphOnlyDepsBuilder);
}
 
@Override
public void findDepsForTargetFromConstructorArgs(
    BuildTarget buildTarget,
    CellNameResolver cellRoots,
    AndroidInstrumentationApkDescriptionArg constructorArg,
    Builder<BuildTarget> extraDepsBuilder,
    Builder<BuildTarget> targetGraphOnlyDepsBuilder) {
  javacFactory.addParseTimeDeps(
      targetGraphOnlyDepsBuilder, null, buildTarget.getTargetConfiguration());
  AndroidTools.addParseTimeDepsToAndroidTools(
      toolchainProvider, buildTarget, targetGraphOnlyDepsBuilder);
}
 
@Override
protected Builder<Object> createBuilder() {
    return ImmutableSet.builder();
}
 
@Override
protected Builder<Object> createBuilder() {
    return ImmutableMultiset.builder();
}
 
源代码22 项目: buck   文件: ExternalJavacProvider.java
@Override
public void addParseTimeDeps(Builder<BuildTarget> depsConsumer) {
  if (javacPath instanceof BuildTargetSourcePath) {
    depsConsumer.add(((BuildTargetSourcePath) javacPath).getTarget());
  }
}
 
源代码23 项目: buck   文件: GwtBinaryDescription.java
@Override
public BuildRule createBuildRule(
    BuildRuleCreationContextWithTargetGraph context,
    BuildTarget buildTarget,
    BuildRuleParams params,
    GwtBinaryDescriptionArg args) {

  ActionGraphBuilder graphBuilder = context.getActionGraphBuilder();

  ImmutableSortedSet.Builder<BuildRule> extraDeps = ImmutableSortedSet.naturalOrder();

  // Find all of the reachable JavaLibrary rules and grab their associated GwtModules.
  ImmutableSortedSet.Builder<SourcePath> gwtModuleJarsBuilder = ImmutableSortedSet.naturalOrder();
  ImmutableSortedSet<BuildRule> moduleDependencies =
      graphBuilder.getAllRules(args.getModuleDeps());
  new AbstractBreadthFirstTraversal<BuildRule>(moduleDependencies) {
    @Override
    public Iterable<BuildRule> visit(BuildRule rule) {
      if (!(rule instanceof JavaLibrary)) {
        return ImmutableSet.of();
      }

      JavaLibrary javaLibrary = (JavaLibrary) rule;
      Iterable<BuildRule> ruleDeps = javaLibrary.getDepsForTransitiveClasspathEntries();

      // If the java library doesn't generate any output, it doesn't contribute a GwtModule
      if (javaLibrary.getSourcePathToOutput() == null) {
        return ruleDeps;
      }

      BuildRule gwtModule =
          graphBuilder.computeIfAbsent(
              javaLibrary
                  .getBuildTarget()
                  .assertUnflavored()
                  .withFlavors(JavaLibrary.GWT_MODULE_FLAVOR),
              gwtModuleTarget -> {
                ImmutableSortedSet<SourcePath> filesForGwtModule =
                    ImmutableSortedSet.<SourcePath>naturalOrder()
                        .addAll(javaLibrary.getSources())
                        .addAll(javaLibrary.getResources())
                        .build();
                ImmutableSortedSet<BuildRule> deps =
                    ImmutableSortedSet.copyOf(
                        graphBuilder.filterBuildRuleInputs(filesForGwtModule));

                return new GwtModule(
                    gwtModuleTarget,
                    context.getProjectFilesystem(),
                    params.withDeclaredDeps(deps).withoutExtraDeps(),
                    graphBuilder,
                    filesForGwtModule,
                    javaLibrary.getResourcesRoot());
              });

      extraDeps.add(gwtModule);
      gwtModuleJarsBuilder.add(Objects.requireNonNull(gwtModule.getSourcePathToOutput()));

      Optional<SourcePath> generatedCode = javaLibrary.getGeneratedAnnotationSourcePath();
      if (generatedCode.isPresent()) {
        extraDeps.add(javaLibrary);
        gwtModuleJarsBuilder.add(generatedCode.get());
      }

      // Traverse all of the deps of this rule.
      return ruleDeps;
    }
  }.start();

  return new GwtBinary(
      buildTarget,
      context.getProjectFilesystem(),
      params.withExtraDeps(extraDeps.build()),
      args.getModules(),
      javaOptions
          .apply(buildTarget.getTargetConfiguration())
          .getJavaRuntimeLauncher(graphBuilder, buildTarget.getTargetConfiguration()),
      args.getVmArgs(),
      args.getStyle().orElse(DEFAULT_STYLE),
      args.getDraftCompile().orElse(DEFAULT_DRAFT_COMPILE),
      args.getOptimize().orElse(DEFAULT_OPTIMIZE),
      args.getLocalWorkers().orElse(DEFAULT_NUM_LOCAL_WORKERS),
      args.getStrict().orElse(DEFAULT_STRICT),
      args.getExperimentalArgs(),
      gwtModuleJarsBuilder.build());
}
 
 类方法
 同包方法