List of usage examples for com.google.common.collect ImmutableSortedSet of
@SuppressWarnings("unchecked") public static <E> ImmutableSortedSet<E> of()
From source file:org.onosproject.onosjar.OnosJarStepFactory.java
private ImmutableSortedSet<Path> findSwaggerModelDefs(SourcePathResolver resolver, ImmutableSortedSet<SourcePath> resourcePaths) { if (resourcePaths == null) { return ImmutableSortedSet.of(); }/* w w w .ja v a 2s .c o m*/ return ImmutableSortedSet.copyOf(resourcePaths.stream().filter(sp -> sp.toString().contains(DEFINITIONS)) .map(resolver::getRelativePath).collect(Collectors.toList())); }
From source file:com.facebook.buck.thrift.ThriftLibraryDescription.java
/** * Create the build rules which compile the input thrift sources into their respective * language specific sources./*from www . j a v a 2 s . c o m*/ */ @VisibleForTesting protected ImmutableMap<String, ThriftCompiler> createThriftCompilerBuildRules(BuildRuleParams params, BuildRuleResolver resolver, CompilerType compilerType, ImmutableList<String> flags, String language, ImmutableSet<String> options, ImmutableMap<String, SourcePath> srcs, ImmutableSortedSet<ThriftLibrary> deps, ImmutableMap<String, ImmutableSortedSet<String>> generatedSources) { SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(resolver); Tool compiler = thriftBuckConfig.getCompiler(compilerType, resolver); // Build up the include roots to find thrift file deps and also the build rules that // generate them. ImmutableMap.Builder<Path, SourcePath> includesBuilder = ImmutableMap.builder(); ImmutableSortedSet.Builder<HeaderSymlinkTree> includeTreeRulesBuilder = ImmutableSortedSet.naturalOrder(); ImmutableList.Builder<Path> includeRootsBuilder = ImmutableList.builder(); ImmutableSet.Builder<Path> headerMapsBuilder = ImmutableSet.builder(); for (ThriftLibrary dep : deps) { includesBuilder.putAll(dep.getIncludes()); includeTreeRulesBuilder.add(dep.getIncludeTreeRule()); includeRootsBuilder.add(dep.getIncludeTreeRule().getIncludePath()); headerMapsBuilder.addAll(OptionalCompat.asSet(dep.getIncludeTreeRule().getHeaderMap())); } ImmutableMap<Path, SourcePath> includes = includesBuilder.build(); ImmutableSortedSet<HeaderSymlinkTree> includeTreeRules = includeTreeRulesBuilder.build(); ImmutableList<Path> includeRoots = includeRootsBuilder.build(); ImmutableSet<Path> headerMaps = headerMapsBuilder.build(); // For each thrift source, add a thrift compile rule to generate it's sources. ImmutableMap.Builder<String, ThriftCompiler> compileRules = ImmutableMap.builder(); for (ImmutableMap.Entry<String, SourcePath> ent : srcs.entrySet()) { String name = ent.getKey(); SourcePath source = ent.getValue(); ImmutableSortedSet<String> genSrcs = Preconditions.checkNotNull(generatedSources.get(name)); BuildTarget target = createThriftCompilerBuildTarget(params.getBuildTarget(), name); Path outputDir = getThriftCompilerOutputDir(params.getProjectFilesystem(), params.getBuildTarget(), name); compileRules.put(name, new ThriftCompiler( params.copyWithChanges(target, Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>naturalOrder() .addAll(compiler.getDeps(ruleFinder)) .addAll(ruleFinder.filterBuildRuleInputs(ImmutableList.<SourcePath>builder().add(source) .addAll(includes.values()).build())) .addAll(includeTreeRules).build()), Suppliers.ofInstance(ImmutableSortedSet.of())), compiler, flags, outputDir, source, language, options, includeRoots, headerMaps, includes, genSrcs)); } return compileRules.build(); }
From source file:com.facebook.buck.core.model.targetgraph.AbstractNodeBuilder.java
protected final ImmutableSortedSet<BuildTarget> getDepsFromArg(TArg arg) { if (!(arg instanceof HasDeclaredDeps)) { return ImmutableSortedSet.of(); }/*from w w w .j a v a 2 s. c o m*/ return ((HasDeclaredDeps) arg).getDeps(); }
From source file:com.facebook.buck.go.GoDescriptors.java
static GoBinary createGoBinaryRule(BuildRuleParams params, final BuildRuleResolver resolver, GoBuckConfig goBuckConfig, ImmutableSet<SourcePath> srcs, List<String> compilerFlags, List<String> assemblerFlags, List<String> linkerFlags, GoPlatform platform) throws NoSuchBuildTargetException { BuildTarget libraryTarget = params.getBuildTarget().withAppendedFlavors(ImmutableFlavor.of("compile"), platform.getFlavor());/*from w w w . j ava2 s .com*/ GoCompile library = GoDescriptors.createGoCompileRule(params.copyWithBuildTarget(libraryTarget), resolver, goBuckConfig, Paths.get("main"), srcs, compilerFlags, assemblerFlags, platform, FluentIterable.from(params.getDeclaredDeps().get()).transform(HasBuildTarget::getBuildTarget)); resolver.addToIndex(library); SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(resolver); SourcePathResolver pathResolver = new SourcePathResolver(ruleFinder); BuildTarget target = createTransitiveSymlinkTreeTarget(params.getBuildTarget()); SymlinkTree symlinkTree = makeSymlinkTree(params.copyWithBuildTarget(target), pathResolver, ruleFinder, requireTransitiveGoLinkables( params.getBuildTarget(), resolver, platform, FluentIterable .from(params.getDeclaredDeps().get()).transform(HasBuildTarget::getBuildTarget), /* includeSelf */ false)); resolver.addToIndex(symlinkTree); LOG.verbose("Symlink tree for linking of %s: %s", params.getBuildTarget(), symlinkTree); return new GoBinary( params.copyWithDeps( Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>naturalOrder() .addAll(ruleFinder.filterBuildRuleInputs(symlinkTree.getLinks().values())) .add(symlinkTree).add(library).build()), Suppliers.ofInstance(ImmutableSortedSet.of())), pathResolver, platform.getCxxPlatform().map(input -> input.getLd().resolve(resolver)), symlinkTree, library, goBuckConfig.getLinker(), ImmutableList.copyOf(linkerFlags), platform); }
From source file:com.google.devtools.build.lib.rules.config.ConfigFeatureFlagOptions.java
/** * Replaces the set of flag-value pairs with the given mapping of flag-value pairs. * * <p>Flags not present in the new {@code flagValues} will return to being unset! To set flags * while still retaining the values already set, call {@link #getFlagValues()} and build a map * containing both the old values and the new ones. Note that when {@link #isTrimmed()} is true, * it's not possible to know the values of ALL flags. * * <p>Because this method replaces the entire set of flag values, all flag values for this * configuration are known, and thus knownValues is set to null, and unknownFlags is cleared. * After this method is called, isTrimmed will return false. *///from w ww . j av a 2 s. c o m public void replaceFlagValues(Map<Label, String> flagValues) { this.flagValues = ImmutableSortedMap.copyOf(flagValues); this.knownDefaultFlags = null; this.unknownFlags = ImmutableSortedSet.of(); }
From source file:edu.mit.streamjit.impl.compiler2.Actor.java
/** * Returns the logical indices popped on the given input during the given * iteration./*from w ww . j a va2s .c o m*/ * @param input the input index * @param iterations the iteration numbers * @return the logical indices popped on the given input during the given * iterations */ public ImmutableSortedSet<Integer> pops(int input, Set<Integer> iterations) { if (iterations.isEmpty()) return ImmutableSortedSet.of(); if (iterations instanceof ContiguousSet) return pops(input, (ContiguousSet<Integer>) iterations); ImmutableSortedSet.Builder<Integer> builder = ImmutableSortedSet.naturalOrder(); for (int i : iterations) builder.addAll(pops(input, i)); return builder.build(); }
From source file:com.facebook.buck.thrift.ThriftCxxEnhancer.java
@Override public BuildRule createBuildRule(TargetGraph targetGraph, BuildRuleParams params, BuildRuleResolver resolver, ThriftConstructorArg args, ImmutableMap<String, ThriftSource> sources, ImmutableSortedSet<BuildRule> deps) throws NoSuchBuildTargetException { SourcePathResolver pathResolver = new SourcePathResolver(new SourcePathRuleFinder(resolver)); // Grab all the sources and headers generated from the passed in thrift sources. CxxHeadersAndSources spec = getThriftHeaderSourceSpec(params, args, sources); // Add all the passed in language-specific thrift deps, and any C/C++ specific deps // passed in via the constructor arg. ImmutableSortedSet<BuildRule> allDeps = ImmutableSortedSet.<BuildRule>naturalOrder().addAll(deps) .addAll(resolver.getAllRules((cpp2 ? args.cpp2Deps : args.cppDeps))).build(); // Create language specific build params by using the deps we formed above. BuildRuleParams langParams = params.copyWithDeps(Suppliers.ofInstance(ImmutableSortedSet.of()), Suppliers.ofInstance(allDeps)); // Merge the thrift generated headers with the ones passed in via the description. ImmutableSortedMap.Builder<String, SourcePath> headersBuilder = ImmutableSortedMap.naturalOrder(); headersBuilder.putAll(spec.getHeaders()); if (args.cppExportedHeaders.getNamedSources().isPresent()) { headersBuilder.putAll(args.cppExportedHeaders.getNamedSources().get()); } else {//from w w w . j a v a2 s . com headersBuilder.putAll(pathResolver.getSourcePathNames(params.getBuildTarget(), "cpp_headers", args.cppExportedHeaders.getUnnamedSources().get())); } ImmutableSortedMap<String, SourcePath> headers = headersBuilder.build(); // Merge the thrift generated sources with the ones passed in via the description. ImmutableSortedMap.Builder<String, SourceWithFlags> srcsBuilder = ImmutableSortedMap.naturalOrder(); srcsBuilder.putAll(spec.getSources()); if (args.cppSrcs.getNamedSources().isPresent()) { srcsBuilder.putAll(args.cppSrcs.getNamedSources().get()); } else { for (SourceWithFlags sourceWithFlags : args.cppSrcs.getUnnamedSources().get()) { srcsBuilder.put( pathResolver.getSourcePathName(params.getBuildTarget(), sourceWithFlags.getSourcePath()), sourceWithFlags); } } ImmutableSortedMap<String, SourceWithFlags> srcs = srcsBuilder.build(); // Construct the C/C++ library description argument to pass to the CxxLibraryDescription.Arg langArgs = CxxLibraryDescription.createEmptyConstructorArg(); langArgs.headerNamespace = args.cppHeaderNamespace; langArgs.srcs = ImmutableSortedSet.copyOf(srcs.values()); langArgs.exportedHeaders = SourceList.ofNamedSources(headers); langArgs.canBeAsset = Optional.empty(); langArgs.compilerFlags = cpp2 ? args.cpp2CompilerFlags : args.cppCompilerFlags; // Since thrift generated C/C++ code uses lots of templates, just use exported deps throughout. langArgs.exportedDeps = FluentIterable.from(allDeps).transform(HasBuildTarget::getBuildTarget) .toSortedSet(Ordering.natural()); return cxxLibraryDescription.createBuildRule(targetGraph, langParams, resolver, langArgs); }
From source file:com.facebook.buck.d.DDescriptionUtils.java
/** * Ensures that a DCompileBuildRule exists for the given target, creating a DCompileBuildRule * if neccesary.//from w ww . java 2s . com * @param baseParams build parameters for the rule * @param buildRuleResolver BuildRuleResolver the rule should be in * @param sourcePathResolver used to resolve source paths * @param src the source file to be compiled * @param compilerFlags flags to pass to the compiler * @param compileTarget the target the rule should be for * @param dBuckConfig the Buck configuration for D * @return the build rule */ public static DCompileBuildRule requireBuildRule(BuildTarget compileTarget, BuildRuleParams baseParams, BuildRuleResolver buildRuleResolver, SourcePathResolver sourcePathResolver, SourcePathRuleFinder ruleFinder, DBuckConfig dBuckConfig, ImmutableList<String> compilerFlags, String name, SourcePath src, DIncludes includes) throws NoSuchBuildTargetException { Optional<BuildRule> existingRule = buildRuleResolver.getRuleOptional(compileTarget); if (existingRule.isPresent()) { return (DCompileBuildRule) existingRule.get(); } else { Tool compiler = dBuckConfig.getDCompiler(); Map<BuildTarget, DIncludes> transitiveIncludes = new TreeMap<>(); transitiveIncludes.put(baseParams.getBuildTarget(), includes); for (Map.Entry<BuildTarget, DLibrary> library : getTransitiveDLibraryRules(baseParams.getDeps()) .entrySet()) { transitiveIncludes.put(library.getKey(), library.getValue().getIncludes()); } ImmutableSortedSet.Builder<BuildRule> depsBuilder = ImmutableSortedSet.naturalOrder(); depsBuilder.addAll(compiler.getDeps(ruleFinder)); depsBuilder.addAll(ruleFinder.filterBuildRuleInputs(src)); for (DIncludes dIncludes : transitiveIncludes.values()) { depsBuilder.addAll(dIncludes.getDeps(ruleFinder)); } ImmutableSortedSet<BuildRule> deps = depsBuilder.build(); return buildRuleResolver .addToIndex( new DCompileBuildRule( baseParams.copyWithChanges(compileTarget, Suppliers.ofInstance(deps), Suppliers.ofInstance(ImmutableSortedSet.of())), sourcePathResolver, compiler, ImmutableList.<String>builder().addAll(dBuckConfig.getBaseCompilerFlags()) .addAll(compilerFlags).build(), name, ImmutableSortedSet.of(src), ImmutableList.copyOf(transitiveIncludes.values()))); } }
From source file:com.facebook.buck.cli.AuditActionGraphCommand.java
private static SortedSet<BuildRule> getRuntimeDeps(BuildRule buildRule, ActionGraphBuilder actionGraphBuilder, SourcePathRuleFinder ruleFinder) { if (!(buildRule instanceof HasRuntimeDeps)) { return ImmutableSortedSet.of(); }//from w w w . jav a2 s .co m return actionGraphBuilder.getAllRules( RichStream.from(((HasRuntimeDeps) buildRule).getRuntimeDeps(ruleFinder)).toOnceIterable()); }
From source file:com.facebook.buck.features.js.JsBundleDescription.java
private static JsBundleAndroid createAndroidBundle(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, ActionGraphBuilder graphBuilder, JsBundle jsBundle) { BuildTarget resourceTarget = buildTarget.withAppendedFlavors(JsFlavors.ANDROID_RESOURCES); BuildRule resource = graphBuilder.requireRule(resourceTarget); return new JsBundleAndroid(buildTarget, projectFilesystem, new BuildRuleParams(() -> ImmutableSortedSet.of(), () -> ImmutableSortedSet.of(jsBundle, resource), ImmutableSortedSet.of()), jsBundle, graphBuilder.getRuleWithType(resourceTarget, AndroidResource.class)); }