List of usage examples for com.google.common.collect ImmutableSortedSet.Builder add
boolean add(E e);
From source file:com.facebook.buck.android.AndroidBinaryGraphEnhancer.java
EnhancementResult createAdditionalBuildables() { ImmutableSortedSet.Builder<BuildRule> enhancedDeps = ImmutableSortedSet.naturalOrder(); enhancedDeps.addAll(originalDeps);/*from w w w. j a va2s .c o m*/ ImmutableSortedSet<BuildRule> resourceRules = getAndroidResourcesAsRules(); BuildTarget buildTargetForFilterResources = createBuildTargetWithFlavor(RESOURCES_FILTER_FLAVOR); FilteredResourcesProvider filteredResourcesProvider; boolean needsResourceFiltering = resourceFilter.isEnabled() || resourceCompressionMode.isStoreStringsAsAssets(); if (needsResourceFiltering) { ResourcesFilter resourcesFilter = new ResourcesFilter(buildTargetForFilterResources, androidResourceDepsFinder, resourceCompressionMode, resourceFilter); BuildRule resourcesFilterBuildRule = buildRuleAndAddToIndex(resourcesFilter, BuildRuleType.RESOURCES_FILTER, buildTargetForFilterResources, resourceRules); filteredResourcesProvider = resourcesFilter; enhancedDeps.add(resourcesFilterBuildRule); resourceRules = ImmutableSortedSet.of(resourcesFilterBuildRule); } else { filteredResourcesProvider = new IdentityResourcesProvider(androidResourceDepsFinder); } BuildTarget buildTargetForUberRDotJava = createBuildTargetWithFlavor(UBER_R_DOT_JAVA_FLAVOR); UberRDotJava uberRDotJava = new UberRDotJava(buildTargetForUberRDotJava, filteredResourcesProvider, javacOptions, androidResourceDepsFinder, shouldPreDex, shouldBuildStringSourceMap); BuildRule uberRDotJavaBuildRule = buildRuleAndAddToIndex(uberRDotJava, BuildRuleType.UBER_R_DOT_JAVA, buildTargetForUberRDotJava, resourceRules); enhancedDeps.add(uberRDotJavaBuildRule); Optional<PackageStringAssets> packageStringAssets = Optional.absent(); if (resourceCompressionMode.isStoreStringsAsAssets()) { BuildTarget buildTargetForPackageStringAssets = createBuildTargetWithFlavor( PACKAGE_STRING_ASSETS_FLAVOR); packageStringAssets = Optional.of(new PackageStringAssets(buildTargetForPackageStringAssets, filteredResourcesProvider, uberRDotJava)); BuildRule packageStringAssetsRule = buildRuleAndAddToIndex(packageStringAssets.get(), BuildRuleType.PACKAGE_STRING_ASSETS, buildTargetForPackageStringAssets, ImmutableSortedSet.of(uberRDotJavaBuildRule)); enhancedDeps.add(packageStringAssetsRule); } // Create the AaptPackageResourcesBuildable. BuildTarget buildTargetForAapt = createBuildTargetWithFlavor(AAPT_PACKAGE_FLAVOR); AaptPackageResources aaptPackageResources = new AaptPackageResources(buildTargetForAapt, manifest, filteredResourcesProvider, androidResourceDepsFinder.getAndroidTransitiveDependencies(), packageType, cpuFilters); BuildRule aaptPackageResourcesBuildRule = buildRuleAndAddToIndex(aaptPackageResources, BuildRuleType.AAPT_PACKAGE, buildTargetForAapt, getAdditionalAaptDeps(resourceRules)); enhancedDeps.add(aaptPackageResourcesBuildRule); Optional<PreDexMerge> preDexMerge = Optional.absent(); if (shouldPreDex) { BuildRule preDexMergeRule = createPreDexMergeRule(uberRDotJava); preDexMerge = Optional.of((PreDexMerge) preDexMergeRule.getBuildable()); enhancedDeps.add(preDexMergeRule); } ImmutableSortedSet<BuildRule> finalDeps; Optional<ComputeExopackageDepsAbi> computeExopackageDepsAbi = Optional.absent(); if (exopackage) { BuildTarget buildTargetForAbiCalculation = createBuildTargetWithFlavor(CALCULATE_ABI_FLAVOR); computeExopackageDepsAbi = Optional .of(new ComputeExopackageDepsAbi(buildTargetForAbiCalculation, androidResourceDepsFinder, uberRDotJava, aaptPackageResources, packageStringAssets, preDexMerge, keystore)); BuildRule computeExopackageDepsAbiRule = buildRuleAndAddToIndex(computeExopackageDepsAbi.get(), BuildRuleType.EXOPACKAGE_DEPS_ABI, buildTargetForAbiCalculation, enhancedDeps.build()); finalDeps = ImmutableSortedSet.of(computeExopackageDepsAbiRule); } else { finalDeps = enhancedDeps.build(); } return new EnhancementResult(filteredResourcesProvider, uberRDotJava, aaptPackageResources, packageStringAssets, preDexMerge, computeExopackageDepsAbi, finalDeps); }
From source file:com.facebook.buck.cxx.AbstractCxxSourceRuleFactory.java
private ImmutableSortedSet<BuildRule> getPreprocessDeps() { ImmutableSortedSet.Builder<BuildRule> builder = ImmutableSortedSet.naturalOrder(); for (CxxPreprocessorInput input : getCxxPreprocessorInput()) { builder.addAll(input.getDeps(getResolver(), getRuleFinder())); }/*from w w w . j ava 2 s . c om*/ if (getPrefixHeader().isPresent()) { builder.addAll(getRuleFinder().filterBuildRuleInputs(getPrefixHeader().get())); } if (getPrecompiledHeader().isPresent()) { builder.addAll(getRuleFinder().filterBuildRuleInputs(getPrecompiledHeader().get())); } if (getSandboxTree().isPresent()) { SymlinkTree tree = getSandboxTree().get(); builder.add(tree); builder.addAll(getRuleFinder().filterBuildRuleInputs(tree.getLinks().values())); } return builder.build(); }
From source file:com.facebook.buck.android.AndroidBinaryBuildable.java
private AbstractExecutionStep createAssetLibrariesMetadataStep(Path libSubdirectory, String metadataFilename, APKModule module, ImmutableSortedSet.Builder<Path> inputAssetLibrariesBuilder) { return new AbstractExecutionStep("write_metadata_for_asset_libraries_" + module.getName()) { @Override/*from w ww . j a va 2 s .co m*/ public StepExecutionResult execute(ExecutionContext context) throws IOException { ProjectFilesystem filesystem = getProjectFilesystem(); // Walk file tree to find libraries filesystem.walkRelativeFileTree(libSubdirectory, new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (!file.toString().endsWith(".so")) { throw new IOException("unexpected file in lib directory"); } inputAssetLibrariesBuilder.add(file); return FileVisitResult.CONTINUE; } }); // Write a metadata ImmutableList.Builder<String> metadataLines = ImmutableList.builder(); Path metadataOutput = libSubdirectory.resolve(metadataFilename); for (Path libPath : inputAssetLibrariesBuilder.build()) { // Should return something like x86/libfoo.so Path relativeLibPath = libSubdirectory.relativize(libPath); long filesize = filesystem.getFileSize(libPath); String desiredOutput = relativeLibPath.toString(); String checksum = filesystem.computeSha256(libPath); metadataLines.add(desiredOutput + ' ' + filesize + ' ' + checksum); } ImmutableList<String> metadata = metadataLines.build(); if (!metadata.isEmpty()) { filesystem.writeLinesToPath(metadata, metadataOutput); } return StepExecutionResults.SUCCESS; } }; }
From source file:com.facebook.buck.cpp.AbstractNativeBuildable.java
@Override public List<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext) { ImmutableList.Builder<Step> steps = ImmutableList.builder(); ImmutableSortedSet.Builder<Path> objectFiles = ImmutableSortedSet.naturalOrder(); Set<Path> createdDirectories = Sets.newHashSet(); addMkdirStepIfNeeded(createdDirectories, steps, getPathToOutputFile().getParent()); for (SourcePath src : srcs) { Path srcFile = src.resolve(); // We expect srcFile to be relative to the buck root Preconditions.checkState(!srcFile.isAbsolute()); Path parent = srcFile.getParent(); if (parent == null) { parent = Paths.get(""); }/*from w w w . j a v a 2 s . c o m*/ // To avoid collisions, objects files are created in directories that reflects the path to // source files rather than the (path-like) name of build targets Path targetDir = BuckConstant.GEN_PATH.resolve(parent); addMkdirStepIfNeeded(createdDirectories, steps, targetDir); Path objectFile = targetDir .resolve(Files.getNameWithoutExtension(srcFile.getFileName().toString()) + OBJECT_EXTENSION); steps.add(new CompilerStep(/* compiler */ getCompiler(), /* shouldLink */ false, /* srcs */ ImmutableSortedSet.of(src.resolve()), /* outputFile */ objectFile, /* shouldAddProjectRootToIncludePaths */ true, /* includePaths */ ImmutableSortedSet.<Path>of())); objectFiles.add(objectFile); } for (BuildRule dep : deps) { // Only c++ static libraries are supported for now. if (dep.getBuildable() instanceof CppLibrary) { objectFiles.add(dep.getBuildable().getPathToOutputFile()); } } steps.addAll(getFinalBuildSteps(objectFiles.build(), getPathToOutputFile())); return steps.build(); }
From source file:com.facebook.buck.cxx.AbstractNativeBuildRule.java
@Override public ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext) { ImmutableList.Builder<Step> steps = ImmutableList.builder(); ImmutableSortedSet.Builder<Path> objectFiles = ImmutableSortedSet.naturalOrder(); Set<Path> createdDirectories = Sets.newHashSet(); addMkdirStepIfNeeded(createdDirectories, steps, getPathToOutputFile().getParent()); for (SourcePath src : srcs) { Path srcFile = getResolver().getPath(src); // We expect srcFile to be relative to the buck root Preconditions.checkState(!srcFile.isAbsolute()); Path parent = srcFile.getParent(); if (parent == null) { parent = Paths.get(""); }/*from w w w . j a v a2s .c o m*/ // To avoid collisions, objects files are created in directories that reflects the path to // source files rather than the (path-like) name of build targets Path targetDir = BuckConstant.GEN_PATH.resolve(parent); addMkdirStepIfNeeded(createdDirectories, steps, targetDir); Path objectFile = targetDir .resolve(Files.getNameWithoutExtension(srcFile.getFileName().toString()) + OBJECT_EXTENSION); steps.add(new CompilerStep(/* compiler */ getCompiler(), /* shouldLink */ false, /* srcs */ ImmutableSortedSet.of(srcFile), /* outputFile */ objectFile, /* shouldAddProjectRootToIncludePaths */ true, /* includePaths */ ImmutableSortedSet.<Path>of(), /* commandLineArgs */ commandLineArgsForFile(src, perSrcFileFlags))); objectFiles.add(objectFile); } for (BuildRule dep : getDeps()) { // Only c++ static libraries are supported for now. if (dep instanceof CxxLibrary) { objectFiles.add(Preconditions.checkNotNull(dep.getPathToOutputFile())); } } steps.addAll(getFinalBuildSteps(objectFiles.build(), getPathToOutputFile())); return steps.build(); }
From source file:eu.eidas.auth.commons.attribute.AttributeSetPropertiesConverter.java
@Nonnull private static ImmutableSortedSet<AttributeDefinition<?>> toAttributeSetFromProperties( @Nonnull Map<?, ?> properties) { ImmutableSortedSet.Builder<AttributeDefinition<?>> setBuilder = new ImmutableSortedSet.Builder<AttributeDefinition<?>>( Ordering.natural());/*from w w w. j av a 2s .c om*/ for (Map.Entry<?, ?> entry : properties.entrySet()) { String key = (String) entry.getKey(); if (Suffix.NAME_URI.matches(key)) { String id = Suffix.NAME_URI.extractKeyPrefix(key); String fullName = getMandatoryString(properties, Suffix.NAME_URI, id); String friendlyName = getMandatoryString(properties, Suffix.FRIENDLY_NAME, id); boolean required = getOptionalFlag(properties, Suffix.REQUIRED, id); boolean transliterationMandatory = getOptionalFlag(properties, Suffix.TRANSLITERATION_MANDATORY, id); boolean uniqueIdentifier = getOptionalFlag(properties, Suffix.UNIQUE_IDENTIFIER, id); String typeStr = getMandatoryString(properties, Suffix.PERSON_TYPE, id); PersonType personType = PersonType.fromString(typeStr); if (null == personType) { throw new IllegalArgumentException("Entry \"" + Suffix.PERSON_TYPE.computeEntry(id) + "\" has an illegal value \"" + typeStr + "\""); } String xmlNamespaceUri = getMandatoryString(properties, Suffix.XML_TYPE_NAMESPACE_URI, id); String localPart = getMandatoryString(properties, Suffix.XML_TYPE_LOCAL_PART, id); String xmlNamespacePrefix = getMandatoryString(properties, Suffix.XML_TYPE_NAMESPACE_PREFIX, id); String attributeValueMarshaller = getMandatoryString(properties, Suffix.ATTRIBUTE_VALUE_MARSHALLER, id); AttributeDefinition.Builder<?> builder = AttributeDefinition.builder(); builder.nameUri(fullName); builder.friendlyName(friendlyName); builder.personType(personType); builder.required(required); builder.transliterationMandatory(transliterationMandatory); builder.uniqueIdentifier(uniqueIdentifier); builder.xmlType(xmlNamespaceUri, localPart, xmlNamespacePrefix); builder.attributeValueMarshaller(attributeValueMarshaller); setBuilder.add(builder.build()); } } return setBuilder.build(); }
From source file:com.facebook.buck.features.go.GoTestDescription.java
@Override public BuildRule createBuildRule(BuildRuleCreationContextWithTargetGraph context, BuildTarget buildTarget, BuildRuleParams params, GoTestDescriptionArg args) { GoPlatform platform = GoDescriptors.getPlatformForRule(getGoToolchain(), this.goBuckConfig, buildTarget, args);/* w w w. j a v a2s .com*/ ActionGraphBuilder graphBuilder = context.getActionGraphBuilder(); SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(graphBuilder); SourcePathResolver pathResolver = DefaultSourcePathResolver.from(ruleFinder); ProjectFilesystem projectFilesystem = context.getProjectFilesystem(); GoTestCoverStep.Mode coverageMode; ImmutableSortedSet.Builder<BuildRule> extraDeps = ImmutableSortedSet.naturalOrder(); ImmutableSet.Builder<SourcePath> srcs; ImmutableMap<String, Path> coverVariables; ImmutableSet.Builder<SourcePath> rawSrcs = ImmutableSet.builder(); rawSrcs.addAll(args.getSrcs()); if (args.getLibrary().isPresent()) { GoLibraryDescriptionArg libraryArg = graphBuilder .requireMetadata(args.getLibrary().get(), GoLibraryDescriptionArg.class).get(); rawSrcs.addAll(libraryArg.getSrcs()); } if (args.getCoverageMode().isPresent()) { coverageMode = args.getCoverageMode().get(); GoTestCoverStep.Mode coverage = coverageMode; GoTestCoverSource coverSource = (GoTestCoverSource) graphBuilder.computeIfAbsent( buildTarget.withAppendedFlavors(InternalFlavor.of("gen-cover")), target -> new GoTestCoverSource(target, projectFilesystem, ruleFinder, pathResolver, platform, rawSrcs.build(), platform.getCover(), coverage)); coverVariables = coverSource.getVariables(); srcs = ImmutableSet.builder(); srcs.addAll(coverSource.getCoveredSources()).addAll(coverSource.getTestSources()); extraDeps.add(coverSource); } else { srcs = rawSrcs; coverVariables = ImmutableMap.of(); coverageMode = GoTestCoverStep.Mode.NONE; } if (buildTarget.getFlavors().contains(TEST_LIBRARY_FLAVOR)) { return createTestLibrary(buildTarget, projectFilesystem, params.copyAppendingExtraDeps(extraDeps.build()), graphBuilder, srcs.build(), args, platform); } GoBinary testMain = createTestMainRule(buildTarget, projectFilesystem, params.copyAppendingExtraDeps(extraDeps.build()), graphBuilder, srcs.build(), coverVariables, coverageMode, args, platform); graphBuilder.addToIndex(testMain); StringWithMacrosConverter macrosConverter = StringWithMacrosConverter.builder().setBuildTarget(buildTarget) .setCellPathResolver(context.getCellPathResolver()).setExpanders(MACRO_EXPANDERS).build(); return new GoTest(buildTarget, projectFilesystem, params.withDeclaredDeps(ImmutableSortedSet.of(testMain)).withoutExtraDeps(), testMain, args.getLabels(), args.getContacts(), args.getTestRuleTimeoutMs().map(Optional::of).orElse( goBuckConfig.getDelegate().getView(TestBuckConfig.class).getDefaultTestRuleTimeoutMs()), ImmutableMap .copyOf(Maps.transformValues(args.getEnv(), x -> macrosConverter.convert(x, graphBuilder))), args.getRunTestSeparately(), args.getResources(), coverageMode); }
From source file:edu.upenn.cis.orchestra.datamodel.AbstractRelation.java
private void initKeyColumnList(SortedSet<Integer> keyColumnList) { ImmutableSortedSet.Builder<Integer> keyColumnBuilder = ImmutableSortedSet.naturalOrder(); for (Integer column : keyColumnList) { keyColumnBuilder.add(column); }/*from w ww. j a v a 2 s. c om*/ _keyColumnList = keyColumnBuilder.build(); }
From source file:edu.upenn.cis.orchestra.datamodel.AbstractRelation.java
private void initKeyColumnList() { ImmutableSortedSet.Builder<Integer> keyColumnBuilder = ImmutableSortedSet.naturalOrder(); for (RelationField f : (_pk == null ? _fields : _pk.getFields())) { keyColumnBuilder.add(_columnNum.get(f.getName())); }//from w w w . ja v a2 s . c o m _keyColumnList = keyColumnBuilder.build(); }
From source file:com.facebook.buck.features.gwt.GwtBinaryDescription.java
@Override public BuildRule createBuildRule(BuildRuleCreationContextWithTargetGraph context, BuildTarget buildTarget, BuildRuleParams params, GwtBinaryDescriptionArg args) { ActionGraphBuilder graphBuilder = context.getActionGraphBuilder(); SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(graphBuilder); 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/* w w w .jav a 2 s . c om*/ 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(ruleFinder.filterBuildRuleInputs(filesForGwtModule)); return new GwtModule(gwtModuleTarget, context.getProjectFilesystem(), params.withDeclaredDeps(deps).withoutExtraDeps(), ruleFinder, 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.get().getJavaRuntimeLauncher(graphBuilder), 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()); }