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:com.facebook.buck.haskell.HaskellCompileRule.java

public static HaskellCompileRule from(BuildTarget target, BuildRuleParams baseParams,
        SourcePathRuleFinder ruleFinder, final SourcePathResolver resolver, final Tool compiler,
        HaskellVersion haskellVersion, ImmutableList<String> flags, final PreprocessorFlags ppFlags,
        CxxPlatform cxxPlatform, CxxSourceRuleFactory.PicType picType, Optional<String> main,
        Optional<HaskellPackageInfo> packageInfo, final ImmutableList<SourcePath> includes,
        final ImmutableSortedMap<String, HaskellPackage> exposedPackages,
        final ImmutableSortedMap<String, HaskellPackage> packages, final HaskellSources sources,
        Preprocessor preprocessor) {/*from ww  w . ja v  a 2  s.  c  o m*/
    return new HaskellCompileRule(
            baseParams.copyWithChanges(target,
                    Suppliers.memoize(() -> ImmutableSortedSet.<BuildRule>naturalOrder()
                            .addAll(compiler.getDeps(ruleFinder)).addAll(ppFlags.getDeps(ruleFinder))
                            .addAll(ruleFinder.filterBuildRuleInputs(includes))
                            .addAll(sources.getDeps(ruleFinder))
                            .addAll(Stream.of(exposedPackages, packages)
                                    .flatMap(packageMap -> packageMap.values().stream())
                                    .flatMap(pkg -> pkg.getDeps(ruleFinder)).iterator())
                            .build()),
                    Suppliers.ofInstance(ImmutableSortedSet.of())),
            resolver, compiler, haskellVersion, flags, ppFlags, cxxPlatform, picType, main, packageInfo,
            includes, exposedPackages, packages, sources, preprocessor);
}

From source file:com.facebook.buck.jvm.java.autodeps.JavaSymbolsRule.java

@Override
public ImmutableSortedSet<BuildRule> getDeps() {
    return ImmutableSortedSet.of();
}

From source file:com.facebook.buck.parser.DefaultParser.java

@VisibleForTesting
static BuildTarget applyDefaultFlavors(BuildTarget target, TargetNode<?> targetNode,
        TargetNodeSpec.TargetType targetType, ParserConfig.ApplyDefaultFlavorsMode applyDefaultFlavorsMode) {
    if (target.isFlavored()
            || (targetType == TargetNodeSpec.TargetType.MULTIPLE_TARGETS
                    && applyDefaultFlavorsMode == ParserConfig.ApplyDefaultFlavorsMode.SINGLE)
            || applyDefaultFlavorsMode == ParserConfig.ApplyDefaultFlavorsMode.DISABLED) {
        return target;
    }/* www  .  ja  v  a  2s  .c om*/

    ImmutableSortedSet<Flavor> defaultFlavors = ImmutableSortedSet.of();
    if (targetNode.getConstructorArg() instanceof HasDefaultFlavors) {
        defaultFlavors = ((HasDefaultFlavors) targetNode.getConstructorArg()).getDefaultFlavors();
        LOG.debug("Got default flavors %s from args of %s", defaultFlavors, target);
    }

    if (targetNode.getDescription() instanceof ImplicitFlavorsInferringDescription) {
        defaultFlavors = ((ImplicitFlavorsInferringDescription) targetNode.getDescription())
                .addImplicitFlavors(defaultFlavors);
        LOG.debug("Got default flavors %s from description of %s", defaultFlavors, target);
    }

    return target.withFlavors(defaultFlavors);
}

From source file:com.opengamma.id.ExternalIdBundle.java

/**
 * Creates an empty bundle.
 */
private ExternalIdBundle() {
    _externalIds = ImmutableSortedSet.of();
}

From source file:com.facebook.buck.d.DDescriptionUtils.java

public static SymlinkTree createSourceSymlinkTree(BuildTarget target, BuildRuleParams baseParams,
        SourcePathResolver pathResolver, SourceList sources) {
    Preconditions.checkState(target.getFlavors().contains(SOURCE_LINK_TREE));
    return new SymlinkTree(
            baseParams.copyWithChanges(target, Suppliers.ofInstance(ImmutableSortedSet.of()),
                    Suppliers.ofInstance(ImmutableSortedSet.of())),
            pathResolver,//ww w  .j  av  a 2  s  .  c  om
            BuildTargets.getGenPath(baseParams.getProjectFilesystem(), baseParams.getBuildTarget(), "%s"),
            MoreMaps.transformKeys(sources.toNameMap(baseParams.getBuildTarget(), pathResolver, "srcs"),
                    MorePaths.toPathFn(baseParams.getProjectFilesystem().getRootPath().getFileSystem())));
}

From source file:com.facebook.buck.cxx.CxxPreprocessables.java

/**
 * Build the {@link HeaderSymlinkTree} rule using the original build params from a target node.
 * In particular, make sure to drop all dependencies from the original build rule params,
 * as these are modeled via {@link CxxPreprocessAndCompile}.
 *///from   www .  j  a v  a 2s  . c o  m
public static HeaderSymlinkTree createHeaderSymlinkTreeBuildRule(SourcePathResolver resolver,
        BuildTarget target, BuildRuleParams params, Path root, ImmutableMap<Path, SourcePath> links,
        HeaderMode headerMode) {
    // Symlink trees never need to depend on anything.
    BuildRuleParams paramsWithoutDeps = params.copyWithChanges(target,
            Suppliers.ofInstance(ImmutableSortedSet.of()), Suppliers.ofInstance(ImmutableSortedSet.of()));

    switch (headerMode) {
    case SYMLINK_TREE_WITH_HEADER_MAP:
        return new HeaderSymlinkTreeWithHeaderMap(paramsWithoutDeps, resolver, root, links);
    case HEADER_MAP_ONLY:
        return new DirectHeaderMap(paramsWithoutDeps, resolver, root, links);
    default:
    case SYMLINK_TREE_ONLY:
        return new HeaderSymlinkTree(paramsWithoutDeps, resolver, root, links);
    }
}

From source file:com.facebook.buck.android.AndroidPrebuiltAarGraphEnhancer.java

/**
 * Creates a rooted DAG of build rules:/*from w ww . ja  va 2s.  c o  m*/
 * <ul>
 *   <li>{@code unzip_aar} depends on the deps specified to the original {@code android_aar}
 *   <li>{@code prebuilt_jar} depends on {@code unzip_aar}
 *   <li>{@code android_resource} depends on {@code unzip_aar}
 *   <li>{@code android_library} depends on {@code android_resource}, {@code prebuilt_jar}, and
 *       {@code unzip_aar}
 * </ul>
 * Therefore, the return value is an {link AndroidLibrary} with no {@code srcs}.
 */
static AndroidPrebuiltAar enhance(BuildRuleParams originalBuildRuleParams, SourcePath aarFile,
        BuildRuleResolver ruleResolver, JavacOptions javacOptions) {
    SourcePathResolver pathResolver = new SourcePathResolver(ruleResolver);

    // unzip_aar
    BuildTarget originalBuildTarget = originalBuildRuleParams.getBuildTarget();
    BuildRuleParams unzipAarParams = originalBuildRuleParams.copyWithChanges(UNZIP_AAR_TYPE,
            BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_UNZIP_FLAVOR),
            originalBuildRuleParams.getDeclaredDeps(), originalBuildRuleParams.getExtraDeps());
    UnzipAar unzipAar = new UnzipAar(unzipAarParams, pathResolver, aarFile);
    ruleResolver.addToIndex(unzipAar);

    // unzip_aar#aar_classes_jar
    BuildRuleParams classesJarParams = originalBuildRuleParams.copyWithChanges(OutputOnlyBuildRule.TYPE,
            BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_CLASSES_JAR_FLAVOR),
            /* declaredDeps */ ImmutableSortedSet.<BuildRule>of(unzipAar),
            /* extraDeps */ ImmutableSortedSet.<BuildRule>of());
    OutputOnlyBuildRule classesJar = new OutputOnlyBuildRule(classesJarParams, pathResolver,
            unzipAar.getPathToClassesJar());
    ruleResolver.addToIndex(classesJar);

    // prebuilt_jar
    BuildRuleParams prebuiltJarParams = originalBuildRuleParams.copyWithChanges(PrebuiltJarDescription.TYPE,
            BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_PREBUILT_JAR_FLAVOR),
            /* declaredDeps */ ImmutableSortedSet.<BuildRule>of(unzipAar),
            /* extraDeps */ ImmutableSortedSet.<BuildRule>of());
    PrebuiltJar prebuiltJar = new PrebuiltJar(/* params */ prebuiltJarParams, pathResolver,
            new BuildTargetSourcePath(classesJar.getBuildTarget()),
            /* sourceJar */ Optional.<SourcePath>absent(), /* gwtJar */ Optional.<SourcePath>absent(),
            /* javadocUrl */ Optional.<String>absent());
    ruleResolver.addToIndex(prebuiltJar);

    // unzip_aar#aar_manifest
    BuildRuleParams manifestParams = originalBuildRuleParams.copyWithChanges(OutputOnlyBuildRule.TYPE,
            BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_MANIFEST),
            /* declaredDeps */ ImmutableSortedSet.<BuildRule>of(unzipAar),
            /* extraDeps */ ImmutableSortedSet.<BuildRule>of());
    OutputOnlyBuildRule manifest = new OutputOnlyBuildRule(manifestParams, pathResolver,
            unzipAar.getAndroidManifest());
    ruleResolver.addToIndex(manifest);

    // android_resource
    BuildRuleParams androidResourceParams = originalBuildRuleParams.copyWithChanges(
            AndroidResourceDescription.TYPE,
            BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_ANDROID_RESOURCE_FLAVOR),
            /* declaredDeps */ ImmutableSortedSet.<BuildRule>of(manifest),
            /* extraDeps */ ImmutableSortedSet.<BuildRule>of());

    // Because all resources and assets are generated files, we specify them as empty collections.
    ImmutableSortedSet<Path> resSrcs = ImmutableSortedSet.of();
    ImmutableSortedSet<Path> assetsSrcs = ImmutableSortedSet.of();

    AndroidResource androidResource = new AndroidResource(androidResourceParams, pathResolver,
            /* deps */ ImmutableSortedSet.<BuildRule>of(unzipAar), unzipAar.getResDirectory(), resSrcs,
            /* rDotJavaPackage */ null, /* assets */ unzipAar.getAssetsDirectory(), assetsSrcs,
            new BuildTargetSourcePath(manifest.getBuildTarget()), /* hasWhitelistedStrings */ false);
    ruleResolver.addToIndex(androidResource);

    // android_library
    BuildRuleParams androidLibraryParams = originalBuildRuleParams.copyWithChanges(
            AndroidLibraryDescription.TYPE, originalBuildTarget,
            /* declaredDeps */ ImmutableSortedSet.<BuildRule>of(androidResource, prebuiltJar, unzipAar),
            /* extraDeps */ ImmutableSortedSet.<BuildRule>of());
    return new AndroidPrebuiltAar(androidLibraryParams, pathResolver, unzipAar.getProguardConfig(), prebuiltJar,
            androidResource, javacOptions);
}

From source file:com.facebook.buck.go.GoTestDescription.java

private GoTestMain requireTestMainGenRule(BuildRuleParams params, BuildRuleResolver resolver,
        ImmutableSet<SourcePath> srcs, Path packageName) throws NoSuchBuildTargetException {
    Tool testMainGenerator = GoDescriptors.getTestMainGenerator(goBuckConfig, params, resolver);

    SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(resolver);
    SourcePathResolver sourceResolver = new SourcePathResolver(ruleFinder);
    GoTestMain generatedTestMain = new GoTestMain(
            params.copyWithChanges(/* w  w  w  .ja va 2  s .c  o  m*/
                    params.getBuildTarget().withAppendedFlavors(ImmutableFlavor.of("test-main-src")),
                    Suppliers.ofInstance(ImmutableSortedSet.copyOf(testMainGenerator.getDeps(ruleFinder))),
                    Suppliers.ofInstance(ImmutableSortedSet.of())),
            sourceResolver, testMainGenerator, srcs, packageName);
    resolver.addToIndex(generatedTestMain);
    return generatedTestMain;
}

From source file:com.facebook.buck.rules.AbstractNodeBuilder.java

@SuppressWarnings("unchecked")
private ImmutableSortedSet<BuildTarget> getDepsFromArg() {
    // Not all rules have deps, but all rules call them deps. When they do, they're always optional.
    // Grab them in the unsafest way I know.
    try {//from   ww w .  j a v a2 s.co m
        Field depsField = arg.getClass().getField("deps");
        Object deps = depsField.get(arg);

        if (deps == null) {
            return ImmutableSortedSet.of();
        }
        // Here's a whole series of assumptions in one lump of a Bad Idea.
        return (ImmutableSortedSet<BuildTarget>) deps;
    } catch (ReflectiveOperationException ignored) {
        // Field doesn't exist: no deps.
        return ImmutableSortedSet.of();
    }
}

From source file:com.facebook.buck.cxx.CxxDescriptionEnhancer.java

public static SymlinkTree createSandboxSymlinkTree(BuildRuleParams params, SourcePathResolver pathResolver,
        CxxPlatform cxxPlatform, ImmutableMap<Path, SourcePath> map) {
    BuildTarget sandboxSymlinkTreeTarget = CxxDescriptionEnhancer
            .createSandboxSymlinkTreeTarget(params.getBuildTarget(), cxxPlatform.getFlavor());
    Path sandboxSymlinkTreeRoot = CxxDescriptionEnhancer
            .getSandboxSymlinkTreePath(params.getProjectFilesystem(), sandboxSymlinkTreeTarget);

    BuildRuleParams paramsWithoutDeps = params.copyWithChanges(sandboxSymlinkTreeTarget,
            Suppliers.ofInstance(ImmutableSortedSet.of()), Suppliers.ofInstance(ImmutableSortedSet.of()));

    return new SymlinkTree(paramsWithoutDeps, pathResolver, sandboxSymlinkTreeRoot, map);
}