Example usage for com.google.common.collect ImmutableSortedSet of

List of usage examples for com.google.common.collect ImmutableSortedSet of

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableSortedSet of.

Prototype

@SuppressWarnings("unchecked")
    public static <E> ImmutableSortedSet<E> of() 

Source Link

Usage

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));
}