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.google.javascript.jscomp.newtypes.JSType.java

public JSType autobox(JSTypes commonTypes) {
    if (isTop() || isUnknown()) {
        return this;
    }/*from  ww  w  .jav  a  2s  . co m*/
    int mask = getMask();
    if ((mask & (NUMBER_MASK | STRING_MASK | BOOLEAN_MASK)) == BOTTOM_MASK) {
        return this;
    }
    switch (mask) {
    case NUMBER_MASK:
        return commonTypes.getNumberInstance();
    case BOOLEAN_MASK:
    case TRUE_MASK:
    case FALSE_MASK:
        return commonTypes.getBooleanInstance();
    case STRING_MASK:
        return commonTypes.getStringInstance();
    }
    // For each set bit, add the corresponding obj to the new objs
    // construct and return the new type.
    // Don't bother autoboxing enums.
    ImmutableSet.Builder<ObjectType> builder = ImmutableSet.builder();
    builder.addAll(getObjs());
    if ((mask & NUMBER_MASK) != 0) {
        builder.add(commonTypes.getNumberInstanceObjType());
    }
    if ((mask & STRING_MASK) != 0) {
        builder.add(commonTypes.getStringInstanceObjType());
    }
    if ((mask & BOOLEAN_MASK) != 0) { // may have truthy or falsy
        builder.add(commonTypes.getBooleanInstanceObjType());
    }
    return makeType(mask & ~(NUMBER_MASK | STRING_MASK | BOOLEAN_MASK), builder.build(), getTypeVar(),
            getEnums());
}

From source file:com.facebook.buck.apple.xcode.ProjectGenerator.java

private PBXNativeTarget generateMacosxBinaryTarget(PBXProject project, BuildRule rule, MacosxBinary buildable)
        throws IOException {
    PBXNativeTarget target = generateBinaryTarget(project, rule, buildable, PBXTarget.ProductType.MACOSX_BINARY,
            OsxResourceDescription.TYPE);

    // Unlike an ios target, macosx targets collect their frameworks and copy them in.
    ImmutableSet.Builder<String> frameworksBuilder = ImmutableSet.builder();
    frameworksBuilder.addAll(buildable.getFrameworks());
    collectRecursiveFrameworkDependencies(rule, frameworksBuilder);

    addCopyFrameworksBuildPhase(rule.getBuildTarget(), target,
            project.getMainGroup().getOrCreateChildGroupByName("Frameworks"), frameworksBuilder.build());

    project.getTargets().add(target);//from ww  w.j a  va 2s.  c  om
    return target;
}

From source file:com.facebook.buck.apple.xcode.ProjectGenerator.java

private PBXNativeTarget generateMacosxFrameworkTarget(PBXProject project, BuildRule rule,
        MacosxFramework buildable) throws IOException {
    PBXNativeTarget target = new PBXNativeTarget(getXcodeTargetName(rule));
    target.setProductType(PBXTarget.ProductType.MACOSX_FRAMEWORK);

    PBXGroup targetGroup = project.getMainGroup().getOrCreateChildGroupByName(target.getName());

    // -- configurations
    setTargetBuildConfigurations(rule.getBuildTarget(), target, targetGroup, buildable.getConfigurations(),
            ImmutableMap.<String, String>of());

    // -- build phases
    // TODO(Task #3772930): Go through all dependencies of the rule
    // and add any shell script rules here
    addRunScriptBuildPhasesForDependencies(rule, target);
    addSourcesAndHeadersBuildPhases(target, targetGroup, buildable.getSrcs(), buildable.getPerFileFlags());

    // MacOSX frameworks actually link with libraries and other frameworks.
    ImmutableSet.Builder<String> frameworksBuilder = ImmutableSet.builder();
    frameworksBuilder.addAll(buildable.getFrameworks());
    collectRecursiveFrameworkDependencies(rule, frameworksBuilder);
    addFrameworksBuildPhase(rule.getBuildTarget(), target,
            project.getMainGroup().getOrCreateChildGroupByName("Frameworks"), frameworksBuilder.build(),
            collectRecursiveLibraryDependencies(rule));
    addResourcesBuildPhase(target, targetGroup, collectRecursiveResources(rule, OsxResourceDescription.TYPE));
    addAssetCatalogBuildPhase(target, targetGroup, collectRecursiveAssetCatalogs(rule));

    // -- products
    PBXGroup productsGroup = project.getMainGroup().getOrCreateChildGroupByName("Products");
    String frameworkName = getProductName(rule.getBuildTarget()) + ".framework";
    PBXFileReference productReference = new PBXFileReference(frameworkName, frameworkName,
            PBXReference.SourceTree.BUILT_PRODUCTS_DIR);
    productsGroup.getChildren().add(productReference);
    target.setProductReference(productReference);

    project.getTargets().add(target);/*from  www .  j  av  a  2 s .c o  m*/
    return target;
}

From source file:com.facebook.buck.apple.xcode.ProjectGenerator.java

private PBXNativeTarget generateIosTestTarget(PBXProject project, BuildRule rule, IosTest buildable)
        throws IOException {
    PBXNativeTarget target = new PBXNativeTarget(getXcodeTargetName(rule));
    target.setProductType(testTypeToTargetProductType(buildable.getTestType()));

    PBXGroup targetGroup = project.getMainGroup().getOrCreateChildGroupByName(target.getName());

    // -- configurations
    Path infoPlistPath = this.repoRootRelativeToOutputDirectory.resolve(buildable.getInfoPlist());
    setTargetBuildConfigurations(rule.getBuildTarget(), target, targetGroup, buildable.getConfigurations(),
            ImmutableMap.of("INFOPLIST_FILE", infoPlistPath.toString()));

    // -- phases/*from www. j av a 2s .  com*/
    // TODO(Task #3772930): Go through all dependencies of the rule
    // and add any shell script rules here
    addRunScriptBuildPhasesForDependencies(rule, target);
    addSourcesAndHeadersBuildPhases(target, targetGroup, buildable.getSrcs(), buildable.getPerFileFlags());
    ImmutableSet.Builder<String> frameworksBuilder = ImmutableSet.builder();
    frameworksBuilder.addAll(buildable.getFrameworks());
    collectRecursiveFrameworkDependencies(rule, frameworksBuilder);
    addFrameworksBuildPhase(rule.getBuildTarget(), target,
            project.getMainGroup().getOrCreateChildGroupByName("Frameworks"), frameworksBuilder.build(),
            collectRecursiveLibraryDependencies(rule));
    addResourcesBuildPhase(target, targetGroup, collectRecursiveResources(rule, IosResourceDescription.TYPE));
    addAssetCatalogBuildPhase(target, targetGroup, collectRecursiveAssetCatalogs(rule));

    // -- products
    PBXGroup productsGroup = project.getMainGroup().getOrCreateChildGroupByName("Products");
    String productName = getProductName(rule.getBuildTarget());
    String productOutputName = Joiner.on(".").join(productName, buildable.getTestType().toFileExtension());
    PBXFileReference productReference = new PBXFileReference(productOutputName, productOutputName,
            PBXReference.SourceTree.BUILT_PRODUCTS_DIR);
    productsGroup.getChildren().add(productReference);
    target.setProductName(productName);
    target.setProductReference(productReference);

    project.getTargets().add(target);
    return target;
}

From source file:com.facebook.buck.apple.xcode.ProjectGenerator.java

private <BuildableBinary extends AbstractBuildable & AppleBuildable> PBXNativeTarget generateBinaryTarget(
        PBXProject project, BuildRule rule, BuildableBinary buildable, PBXTarget.ProductType productType,
        BuildRuleType resourceRuleType) throws IOException {
    PBXNativeTarget target = new PBXNativeTarget(getXcodeTargetName(rule));
    target.setProductType(productType);//from   w  w w. ja  v  a  2s .  com

    PBXGroup targetGroup = project.getMainGroup().getOrCreateChildGroupByName(target.getName());

    // -- configurations
    Path infoPlistPath = this.repoRootRelativeToOutputDirectory.resolve(buildable.getInfoPlist());
    setTargetBuildConfigurations(rule.getBuildTarget(), target, targetGroup, buildable.getConfigurations(),
            ImmutableMap.of("INFOPLIST_FILE", infoPlistPath.toString()));

    // -- phases
    // TODO(Task #3772930): Go through all dependencies of the rule
    // and add any shell script rules here
    addRunScriptBuildPhasesForDependencies(rule, target);
    addSourcesAndHeadersBuildPhases(target, targetGroup, buildable.getSrcs(), buildable.getPerFileFlags());
    ImmutableSet.Builder<String> frameworksBuilder = ImmutableSet.builder();
    frameworksBuilder.addAll(buildable.getFrameworks());
    collectRecursiveFrameworkDependencies(rule, frameworksBuilder);
    addFrameworksBuildPhase(rule.getBuildTarget(), target,
            project.getMainGroup().getOrCreateChildGroupByName("Frameworks"), frameworksBuilder.build(),
            collectRecursiveLibraryDependencies(rule));
    addResourcesBuildPhase(target, targetGroup, collectRecursiveResources(rule, resourceRuleType));
    addAssetCatalogBuildPhase(target, targetGroup, collectRecursiveAssetCatalogs(rule));

    // -- products
    PBXGroup productsGroup = project.getMainGroup().getOrCreateChildGroupByName("Products");
    String productName = getProductName(rule.getBuildTarget());
    String productOutputName = productName + ".app";
    PBXFileReference productReference = new PBXFileReference(productOutputName, productOutputName,
            PBXReference.SourceTree.BUILT_PRODUCTS_DIR);
    productsGroup.getChildren().add(productReference);
    target.setProductName(productName);
    target.setProductReference(productReference);

    return target;
}

From source file:com.facebook.presto.hive.metastore.CachingHiveMetastore.java

private Set<HivePrivilege> getPrivileges(String user, HiveObjectRef objectReference) {
    ImmutableSet.Builder<HivePrivilege> privileges = ImmutableSet.builder();
    try (HiveMetastoreClient client = clientProvider.createMetastoreClient()) {
        PrincipalPrivilegeSet privilegeSet = client.getPrivilegeSet(objectReference, user, null);

        if (privilegeSet != null) {
            Map<String, List<PrivilegeGrantInfo>> userPrivileges = privilegeSet.getUserPrivileges();
            if (userPrivileges != null) {
                privileges.addAll(toGrants(userPrivileges.get(user)));
            }/*from  www.  ja v  a2 s  .co  m*/
            for (List<PrivilegeGrantInfo> rolePrivileges : privilegeSet.getRolePrivileges().values()) {
                privileges.addAll(toGrants(rolePrivileges));
            }
            // We do not add the group permissions as Hive does not seem to process these
        }
    } catch (TException e) {
        throw new PrestoException(HIVE_METASTORE_ERROR, e);
    }

    return privileges.build();
}

From source file:com.tngtech.archunit.core.domain.JavaClass.java

/**
 * Returns all dependencies originating directly from this class (i.e. not just from a superclass),
 * where a dependency can be//from w  w w.ja  v a2s  .c om
 * <ul>
 * <li>field access</li>
 * <li>method call</li>
 * <li>constructor call</li>
 * <li>extending a class</li>
 * <li>implementing an interface</li>
 * <li>referencing in throws declaration</li>
 * </ul>
 *
 * @return All dependencies originating directly from this class (i.e. where this class is the origin)
 */
@PublicAPI(usage = ACCESS)
public Set<Dependency> getDirectDependenciesFromSelf() {
    ImmutableSet.Builder<Dependency> result = ImmutableSet.builder();
    result.addAll(dependenciesFromAccesses(getAccessesFromSelf()));
    result.addAll(inheritanceDependenciesFromSelf());
    result.addAll(fieldDependenciesFromSelf());
    result.addAll(returnTypeDependenciesFromSelf());
    result.addAll(methodParameterDependenciesFromSelf());
    result.addAll(throwsDeclarationDependenciesFromSelf());
    result.addAll(constructorParameterDependenciesFromSelf());
    return result.build();
}

From source file:com.tngtech.archunit.core.domain.JavaClass.java

/**
 * Like {@link #getDirectDependenciesFromSelf()}, but instead returns all dependencies where this class
 * is target./*from   w ww .  j  av a2  s . c  om*/
 *
 * @return Dependencies where this class is the target.
 */
@PublicAPI(usage = ACCESS)
public Set<Dependency> getDirectDependenciesToSelf() {
    ImmutableSet.Builder<Dependency> result = ImmutableSet.builder();
    result.addAll(dependenciesFromAccesses(getAccessesToSelf()));
    result.addAll(inheritanceDependenciesToSelf());
    result.addAll(fieldDependenciesToSelf());
    result.addAll(returnTypeDependenciesToSelf());
    result.addAll(methodParameterDependenciesToSelf());
    result.addAll(throwsDeclarationDependenciesToSelf());
    result.addAll(constructorParameterDependenciesToSelf());
    return result.build();
}

From source file:org.onosproject.segmentrouting.McastHandler.java

/**
 * Adds a port to given multicast group on given device. This involves the
 * update of L3 multicast group and multicast routing table entry.
 *
 * @param deviceId device ID/*from   ww w  .  j  a va  2s  . c  om*/
 * @param port port to be added
 * @param mcastIp multicast group
 * @param assignedVlan assigned VLAN ID
 */
private void addPortToDevice(DeviceId deviceId, PortNumber port, IpAddress mcastIp, VlanId assignedVlan) {
    McastStoreKey mcastStoreKey = new McastStoreKey(mcastIp, deviceId);
    ImmutableSet.Builder<PortNumber> portBuilder = ImmutableSet.builder();
    if (!mcastNextObjStore.containsKey(mcastStoreKey)) {
        // First time someone request this mcast group via this device
        portBuilder.add(port);
    } else {
        // This device already serves some subscribers of this mcast group
        NextObjective nextObj = mcastNextObjStore.get(mcastStoreKey).value();
        // Stop if the port is already in the nextobj
        Set<PortNumber> existingPorts = getPorts(nextObj.next());
        if (existingPorts.contains(port)) {
            log.info("NextObj for {}/{} already exists. Abort", deviceId, port);
            return;
        }
        portBuilder.addAll(existingPorts).add(port).build();
    }
    // Create, store and apply the new nextObj and fwdObj
    ObjectiveContext context = new DefaultObjectiveContext(
            (objective) -> log.debug("Successfully add {} on {}/{}, vlan {}", mcastIp, deviceId, port.toLong(),
                    assignedVlan),
            (objective, error) -> log.warn("Failed to add {} on {}/{}, vlan {}: {}", mcastIp, deviceId,
                    port.toLong(), assignedVlan, error));
    NextObjective newNextObj = nextObjBuilder(mcastIp, assignedVlan, portBuilder.build()).add();
    ForwardingObjective fwdObj = fwdObjBuilder(mcastIp, assignedVlan, newNextObj.id()).add(context);
    mcastNextObjStore.put(mcastStoreKey, newNextObj);
    srManager.flowObjectiveService.next(deviceId, newNextObj);
    srManager.flowObjectiveService.forward(deviceId, fwdObj);
}