Example usage for com.google.common.collect ImmutableSet.Builder addAll

List of usage examples for com.google.common.collect ImmutableSet.Builder addAll

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableSet.Builder addAll.

Prototype

boolean addAll(Collection<? extends E> c);

Source Link

Document

Adds all of the elements in the specified collection to this set if they're not already present (optional operation).

Usage

From source file:com.facebook.buck.haskell.HaskellGhciDescription.java

@Override
public BuildRule createBuildRule(TargetGraph targetGraph, BuildTarget buildTarget,
        final ProjectFilesystem projectFilesystem, BuildRuleParams params, final BuildRuleResolver resolver,
        final CellPathResolver cellPathResolver, HaskellGhciDescriptionArg args)
        throws NoSuchBuildTargetException {

    CxxPlatform cxxPlatform = cxxPlatforms.getValue(buildTarget).orElse(defaultCxxPlatform);
    SourcePathRuleFinder ruleFinder = new SourcePathRuleFinder(resolver);
    SourcePathResolver pathResolver = DefaultSourcePathResolver.from(ruleFinder);

    ImmutableSet.Builder<BuildRule> depsBuilder = ImmutableSet.builder();
    depsBuilder.addAll(CxxDeps.builder().addDeps(args.getDeps()).addPlatformDeps(args.getPlatformDeps()).build()
            .get(resolver, cxxPlatform));
    ImmutableSet<BuildRule> deps = depsBuilder.build();

    ImmutableSet.Builder<HaskellPackage> haskellPackages = ImmutableSet.builder();
    ImmutableSet.Builder<HaskellPackage> prebuiltHaskellPackages = ImmutableSet.builder();
    ImmutableSet.Builder<HaskellPackage> firstOrderHaskellPackages = ImmutableSet.builder();
    AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException> haskellVisitor = new AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException>(
            deps) {//from   w  ww  .  j  a v  a2s .c  om
        @Override
        public ImmutableSet<BuildRule> visit(BuildRule rule) throws NoSuchBuildTargetException {
            ImmutableSet.Builder<BuildRule> traverse = ImmutableSet.builder();
            if (rule instanceof HaskellLibrary || rule instanceof PrebuiltHaskellLibrary) {
                HaskellCompileInput ci = ((HaskellCompileDep) rule).getCompileInput(cxxPlatform,
                        Linker.LinkableDepType.STATIC, args.getEnableProfiling());

                if (params.getBuildDeps().contains(rule)) {
                    firstOrderHaskellPackages.addAll(ci.getPackages());
                }

                if (rule instanceof HaskellLibrary) {
                    haskellPackages.addAll(ci.getPackages());
                    traverse.addAll(rule.getBuildDeps());
                } else if (rule instanceof PrebuiltHaskellLibrary) {
                    prebuiltHaskellPackages.addAll(ci.getPackages());
                    traverse.addAll(rule.getBuildDeps());
                }
            }

            return traverse.build();
        }
    };
    haskellVisitor.start();

    ImmutableSet.Builder<NativeLinkable> nativeLinkables = ImmutableSet.builder();
    AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException> cxxVisitor = new AbstractBreadthFirstThrowingTraversal<BuildRule, NoSuchBuildTargetException>(
            deps) {
        @Override
        public ImmutableSet<BuildRule> visit(BuildRule rule) throws NoSuchBuildTargetException {
            ImmutableSet.Builder<BuildRule> traverse = ImmutableSet.builder();
            if (rule instanceof CxxLibrary) {
                nativeLinkables.add((NativeLinkable) rule);
            } else if (rule instanceof PrebuiltCxxLibrary) {
                nativeLinkables.add((NativeLinkable) rule);
            } else if (rule instanceof HaskellLibrary || rule instanceof PrebuiltHaskellLibrary) {
                for (NativeLinkable nl : ((NativeLinkable) rule)
                        .getNativeLinkableExportedDepsForPlatform(cxxPlatform)) {
                    traverse.add((BuildRule) nl);
                }
            }

            return traverse.build();
        }
    };
    cxxVisitor.start();

    ImmutableList<NativeLinkable> sortedNativeLinkables = getSortedNativeLinkables(cxxPlatform,
            nativeLinkables.build());

    BuildRule omnibusSharedObject = requireOmnibusSharedObject(buildTarget, projectFilesystem, resolver,
            cxxPlatform, sortedNativeLinkables);

    ImmutableSortedMap.Builder<String, SourcePath> solibs = ImmutableSortedMap.naturalOrder();
    for (NativeLinkable nativeLinkable : sortedNativeLinkables) {
        if (isPrebuiltSO(nativeLinkable, cxxPlatform)) {
            ImmutableMap<String, SourcePath> sharedObjects = nativeLinkable.getSharedLibraries(cxxPlatform);
            for (Map.Entry<String, SourcePath> ent : sharedObjects.entrySet()) {
                if (ent.getValue() instanceof PathSourcePath) {
                    solibs.put(ent.getKey(), ent.getValue());
                }
            }
        }
    }

    HaskellSources srcs = HaskellSources.from(buildTarget, resolver, pathResolver, ruleFinder, cxxPlatform,
            "srcs", args.getSrcs());

    return resolver.addToIndex(HaskellGhciRule.from(buildTarget, projectFilesystem, params, resolver, srcs,
            args.getCompilerFlags(), args.getGhciBinDep(), args.getGhciInit(), omnibusSharedObject,
            solibs.build(), firstOrderHaskellPackages.build(), haskellPackages.build(),
            prebuiltHaskellPackages.build(), args.getEnableProfiling(), haskellConfig.getGhciScriptTemplate(),
            haskellConfig.getGhciBinutils(), haskellConfig.getGhciGhc(), haskellConfig.getGhciLib(),
            haskellConfig.getGhciCxx(), haskellConfig.getGhciCc(), haskellConfig.getGhciCpp()));
}

From source file:com.googlesource.gerrit.plugins.reviewers.ChangeEventListener.java

private Set<String> findReviewers(List<ReviewerFilterSection> sections, ChangeData changeData)
        throws OrmException, QueryParseException {
    ImmutableSet.Builder<String> reviewers = ImmutableSet.builder();
    List<ReviewerFilterSection> found = findReviewerSections(sections, changeData);
    for (ReviewerFilterSection s : found) {
        reviewers.addAll(s.getReviewers());
    }/*w w w  .  j ava2s  .  co m*/
    return reviewers.build();
}

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

@Override
public Iterable<BuildTarget> findDepsForTargetFromConstructorArgs(BuildTarget buildTarget,
        CellPathResolver cellRoots, Arg constructorArg) {

    ImmutableSet.Builder<BuildTarget> deps = ImmutableSet.builder();

    // Get any parse time deps from the C/C++ platforms.
    deps.addAll(CxxPlatforms
            .getParseTimeDeps(cxxPlatforms.getValue(buildTarget.getFlavors()).orElse(defaultCxxPlatform)));

    // Extract parse time deps from flags, args, and environment parameters.
    Iterable<Iterable<String>> macroStrings = ImmutableList.<Iterable<String>>builder()
            .add(constructorArg.linkerFlags).addAll(constructorArg.platformLinkerFlags.getValues())
            .add(constructorArg.args).add(constructorArg.env.values()).build();
    for (String macroString : Iterables.concat(macroStrings)) {
        try {/* ww  w  .java2s. co m*/
            deps.addAll(CxxDescriptionEnhancer.MACRO_HANDLER.extractParseTimeDeps(buildTarget, cellRoots,
                    macroString));
        } catch (MacroException e) {
            throw new HumanReadableException(e, "%s: %s", buildTarget, e.getMessage());
        }
    }

    CxxTestType type = constructorArg.framework.orElse(getDefaultTestType());
    switch (type) {
    case GTEST: {
        deps.add(cxxBuckConfig.getGtestDep());
        boolean useDefaultTestMain = constructorArg.useDefaultTestMain.orElse(true);
        if (useDefaultTestMain) {
            deps.add(cxxBuckConfig.getGtestDefaultTestMainDep());
        }
        break;
    }
    case BOOST: {
        deps.add(cxxBuckConfig.getBoostTestDep());
        break;
    }
    default: {
        break;
    }
    }

    return deps.build();
}

From source file:com.yahoo.yqlplus.engine.internal.plan.IndexedQueryPlanner.java

public IndexedQueryPlanner(Iterable<IndexDescriptor> indexes) {
    ImmutableMap.Builder<IndexKey, IndexDescriptor> idx = ImmutableMap.builder();
    ImmutableSet.Builder<String> cols = ImmutableSet.builder();
    for (IndexDescriptor index : indexes) {
        idx.put(IndexKey.of(index.getColumnNames()), index);
        cols.addAll(index.getColumnNames());
    }/*from   w  w w.j  av  a2s . c  o m*/
    this.indexes = idx.build();
    this.indexColumns = cols.build();
}

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

public static Optional<CxxCompilationDatabaseDependencies> createCompilationDatabaseDependencies(
        BuildTarget buildTarget, FlavorDomain<CxxPlatform> platforms, BuildRuleResolver resolver,
        CxxConstructorArg args) throws NoSuchBuildTargetException {
    Preconditions.checkState(buildTarget.getFlavors().contains(CxxCompilationDatabase.COMPILATION_DATABASE));
    Optional<Flavor> cxxPlatformFlavor = platforms.getFlavor(buildTarget);
    Preconditions.checkState(cxxPlatformFlavor.isPresent(), "Could not find cxx platform in:\n%s",
            Joiner.on(", ").join(buildTarget.getFlavors()));
    ImmutableSet.Builder<SourcePath> sourcePaths = ImmutableSet.builder();
    for (BuildTarget dep : args.deps) {
        Optional<CxxCompilationDatabaseDependencies> compilationDatabases = resolver
                .requireMetadata(//from   w  w w .j  av a  2  s  .co  m
                        BuildTarget.builder(dep).addFlavors(CxxCompilationDatabase.COMPILATION_DATABASE)
                                .addFlavors(cxxPlatformFlavor.get()).build(),
                        CxxCompilationDatabaseDependencies.class);
        if (compilationDatabases.isPresent()) {
            sourcePaths.addAll(compilationDatabases.get().getSourcePaths());
        }
    }
    // Not all parts of Buck use require yet, so require the rule here so it's available in the
    // resolver for the parts that don't.
    resolver.requireRule(buildTarget);
    sourcePaths.add(new BuildTargetSourcePath(buildTarget));
    return Optional.of(CxxCompilationDatabaseDependencies.of(sourcePaths.build()));
}

From source file:com.facebook.buck.rules.query.GraphEnhancementQueryEnvironment.java

@Override
public Set<QueryTarget> getFwdDeps(Iterable<QueryTarget> targets) throws QueryException, InterruptedException {
    ImmutableSet.Builder<QueryTarget> builder = ImmutableSet.builder();
    for (QueryTarget target : targets) {
        List<QueryBuildTarget> deps = getNode(target).getDeps().stream().map(QueryBuildTarget::of)
                .collect(Collectors.toList());
        builder.addAll(deps);
    }// ww  w .  ja  v  a  2s  . c  o m
    return builder.build();
}

From source file:com.zimbra.cs.index.UnionQueryOperation.java

@Override
Set<QueryTarget> getQueryTargets() {
    ImmutableSet.Builder<QueryTarget> builder = ImmutableSet.builder();
    for (QueryOperation op : operations) {
        builder.addAll(op.getQueryTargets());
    }// w  w w  .j a va2s .com
    return builder.build();
}

From source file:com.wealdtech.collect.TreeRangedMultimap.java

@Override
public Collection<V> get(final Range<K> range) {
    // Find all items which start before this range ends
    ImmutableSet.Builder<V> startersB = ImmutableSet.builder();
    Map.Entry<K, List<V>> startEntry = startMap.floorEntry(range.upperEndpoint());
    while (startEntry != null) {
        // Because our range is [) we don't include anything on the upper endpoint itself
        if (!startEntry.getKey().equals(range.upperEndpoint())) {
            startersB.addAll(startEntry.getValue());
        }//from ww  w .  ja v  a2 s  . com
        startEntry = startMap.lowerEntry(startEntry.getKey());
    }
    final ImmutableSet<V> starters = startersB.build();

    // Final all items which end after this range starts
    ImmutableSet.Builder<V> finishersB = ImmutableSet.builder();
    Map.Entry<K, List<V>> finishEntry = endMap.ceilingEntry(range.lowerEndpoint());
    while (finishEntry != null) {
        // Because our range is [) we don't include anything on the lower endpoint itself
        if (!finishEntry.getKey().equals(range.lowerEndpoint())) {
            finishersB.addAll(finishEntry.getValue());
        }
        finishEntry = endMap.higherEntry(finishEntry.getKey());
    }
    final ImmutableSet<V> finishers = finishersB.build();

    // Our result is everything which is in both sets
    return Sets.intersection(starters, finishers);
}

From source file:com.google.template.soy.soytree.TemplateRegistry.java

/**
 * Retrieves the set of {@code DelegateTemplateDivision}s for all variants of a given a delegate
 * template name./*  w w  w .  j av a 2 s.c  o m*/
 * @param delTemplateName The delegate template name to retrieve.
 * @return The set of {@code DelegateTemplateDivision}s for all variants.
 */
public ImmutableSet<DelegateTemplateDivision> getDelTemplateDivisionsForAllVariants(String delTemplateName) {
    ImmutableSet<DelTemplateKey> keysForAllVariants = delTemplateNameToKeysMap.get(delTemplateName);
    ImmutableSet.Builder<DelegateTemplateDivision> builder = ImmutableSet.builder();
    for (DelTemplateKey delTemplateKey : keysForAllVariants) {
        builder.addAll(delTemplatesMap.get(delTemplateKey));
    }
    return builder.build();
}

From source file:com.linecorp.armeria.server.grpc.GrpcDocServicePlugin.java

@Override
public ServiceSpecification generateSpecification(Set<ServiceConfig> serviceConfigs) {
    final Map<String, ServiceEntryBuilder> map = new LinkedHashMap<>();
    for (ServiceConfig serviceConfig : serviceConfigs) {
        final GrpcService grpcService = serviceConfig.service().as(GrpcService.class).get();
        ImmutableSet.Builder<MediaType> supportedMediaTypesBuilder = ImmutableSet.builder();
        supportedMediaTypesBuilder.addAll(grpcService.supportedSerializationFormats().stream()
                .map(SerializationFormat::mediaType)::iterator);
        if (serviceConfig.service().as(UnframedGrpcService.class).isPresent()) {
            if (grpcService.supportedSerializationFormats().contains(GrpcSerializationFormats.PROTO)) {
                // Normal clients of a GrpcService are not required to set a protocol when using unframed
                // requests but we set it here for clarity in DocService, where there may be multiple
                // services with similar mime types but different protocols.
                supportedMediaTypesBuilder.add(MediaType.PROTOBUF.withParameter("protocol", "gRPC"));
            }/*from  w ww.  java 2s.c  o  m*/
            if (grpcService.supportedSerializationFormats().contains(GrpcSerializationFormats.JSON)) {
                supportedMediaTypesBuilder.add(MediaType.JSON_UTF_8.withParameter("protocol", "gRPC"));
            }
        }
        Set<MediaType> supportedMediaTypes = supportedMediaTypesBuilder.build();
        for (ServerServiceDefinition service : grpcService.services()) {
            map.computeIfAbsent(service.getServiceDescriptor().getName(), s -> {
                FileDescriptor fileDescriptor = ((ProtoFileDescriptorSupplier) service.getServiceDescriptor()
                        .getSchemaDescriptor()).getFileDescriptor();
                ServiceDescriptor serviceDescriptor = fileDescriptor.getServices().stream()
                        .filter(sd -> sd.getFullName().equals(service.getServiceDescriptor().getName()))
                        .findFirst().orElseThrow(IllegalStateException::new);
                return new ServiceEntryBuilder(serviceDescriptor);
            });
        }
        serviceConfig.pathMapping().prefix().ifPresent(path -> {
            for (ServerServiceDefinition service : grpcService.services()) {
                final String serviceName = service.getServiceDescriptor().getName();
                map.get(serviceName).endpoint(new EndpointInfo(serviceConfig.virtualHost().hostnamePattern(),
                        // Only the URL prefix, each method is served at a different path.
                        path + serviceName + '/', "",
                        // No default mime type for GRPC, so just pick arbitrarily for now.
                        // TODO(anuraag): Consider allowing default mime type to be null.
                        Iterables.getFirst(supportedMediaTypes, GrpcSerializationFormats.PROTO.mediaType()),
                        supportedMediaTypes));
            }
        });
    }
    return generate(map.values().stream().map(ServiceEntryBuilder::build).collect(toImmutableList()));
}