Example usage for com.google.common.collect ImmutableSet size

List of usage examples for com.google.common.collect ImmutableSet size

Introduction

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

Prototype

int size();

Source Link

Document

Returns the number of elements in this set (its cardinality).

Usage

From source file:dagger.internal.codegen.InjectValidator.java

private ValidationReport<VariableElement> validateField(VariableElement fieldElement) {
    ValidationReport.Builder<VariableElement> builder = ValidationReport.about(fieldElement);
    Set<Modifier> modifiers = fieldElement.getModifiers();
    if (modifiers.contains(FINAL)) {
        builder.addError(FINAL_INJECT_FIELD, fieldElement);
    }/* w ww .j a  va2 s.c  o  m*/

    if (modifiers.contains(PRIVATE)) {
        builder.addItem(PRIVATE_INJECT_FIELD,
                privateAndStaticInjectionDiagnosticKind.orElse(compilerOptions.privateMemberValidationKind()),
                fieldElement);
    }

    if (modifiers.contains(STATIC)) {
        builder.addItem(STATIC_INJECT_FIELD,
                privateAndStaticInjectionDiagnosticKind.orElse(compilerOptions.staticMemberValidationKind()),
                fieldElement);
    }

    ImmutableSet<? extends AnnotationMirror> qualifiers = getQualifiers(fieldElement);
    if (qualifiers.size() > 1) {
        for (AnnotationMirror qualifier : qualifiers) {
            builder.addError(MULTIPLE_QUALIFIERS, fieldElement, qualifier);
        }
    }

    if (FrameworkTypes.isProducerType(fieldElement.asType())) {
        builder.addError(provisionMayNotDependOnProducerType(fieldElement.asType()), fieldElement);
    }

    return builder.build();
}

From source file:dagger.internal.codegen.InjectBindingRegistryImpl.java

@CanIgnoreReturnValue
@Override/*from   w ww .  ja v  a 2 s  . c om*/
public Optional<ProvisionBinding> getOrFindProvisionBinding(Key key) {
    checkNotNull(key);
    if (!isValidImplicitProvisionKey(key, types)) {
        return Optional.empty();
    }
    ProvisionBinding binding = provisionBindings.getBinding(key);
    if (binding != null) {
        return Optional.of(binding);
    }

    // ok, let's see if we can find an @Inject constructor
    TypeElement element = MoreElements.asType(types.asElement(key.type()));
    ImmutableSet<ExecutableElement> injectConstructors = injectedConstructors(element);
    switch (injectConstructors.size()) {
    case 0:
        // No constructor found.
        return Optional.empty();
    case 1:
        return tryRegisterConstructor(Iterables.getOnlyElement(injectConstructors), Optional.of(key.type()),
                true);
    default:
        throw new IllegalStateException("Found multiple @Inject constructors: " + injectConstructors);
    }
}

From source file:com.google.caliper.runner.CaliperRun.java

public void run() throws InvalidBenchmarkException {
    ImmutableList<VirtualMachine> vms = createVms(options.vmNames());

    ImmutableSetMultimap<String, String> combinedParams = benchmarkClass.userParameters()
            .fillInDefaultsFor(options.userParameters());

    // TODO(kevinb): other kinds of partial scenario selectors...
    ScenarioSelection selection = new FullCartesianScenarioSelection(methods, vms, combinedParams);

    console.describe(selection);//from w ww . j ava2s. c  o  m

    ImmutableSet<Scenario> allScenarios = selection.buildScenarios();

    console.beforeDryRun(allScenarios.size());
    console.flush();

    // always dry run first.
    ImmutableSet<Scenario> scenariosToRun = dryRun(allScenarios);
    if (scenariosToRun.size() != allScenarios.size()) {
        console.skippedScenarios(allScenarios.size() - scenariosToRun.size());
    }

    ShortDuration estimate;
    try {
        ShortDuration perTrial = instrument.estimateRuntimePerTrial();
        estimate = perTrial.times(scenariosToRun.size() * options.trialsPerScenario());
    } catch (Exception e) {
        estimate = ShortDuration.zero();
    }

    if (options.dryRun()) {
        return;
    }

    console.beforeRun(options.trialsPerScenario(), scenariosToRun.size(), estimate);
    console.flush();

    ResultDataWriter results = new ResultDataWriter();
    results.writeInstrument(instrument);
    results.writeEnvironment(new EnvironmentGetter().getEnvironmentSnapshot());

    int scenariosExecuted = 0;
    int totalTrials = scenariosToRun.size() * options.trialsPerScenario();
    // TODO: use Stopwatch after Guava r10
    long start = System.currentTimeMillis();
    for (int i = 0; i < options.trialsPerScenario(); i++) {
        for (Scenario scenario : scenariosToRun) {
            TrialResult trialResult = measure(scenario);
            results.writeTrialResult(trialResult);
            scenariosExecuted++;
            console.print(String.format("\r%d of %d measurements complete: %.1f%%.", scenariosExecuted,
                    totalTrials, scenariosExecuted * 100.0 / totalTrials));
        }
    }
    console.print("\n");

    long elapsed = System.currentTimeMillis() - start;
    console.afterRun(ShortDuration.of(elapsed, MILLISECONDS));

    Run run = results.getRun();
    for (ResultProcessor resultProcessor : resultProcessors) {
        resultProcessor.processRun(run);
    }
}

From source file:com.facebook.buck.core.graph.transformation.executor.impl.ToposortDepsAwareWorker.java

private ImmutableList<ToposortBasedDepsAwareTask<T>> checkTasksReadyOrReschedule(
        ImmutableSet<? extends ToposortBasedDepsAwareTask<T>> tasks)
        throws InterruptedException, ExecutionException {

    ImmutableList.Builder<ToposortBasedDepsAwareTask<T>> notDoneDepsBuilder = ImmutableList
            .builderWithExpectedSize(tasks.size());
    for (ToposortBasedDepsAwareTask<T> task : tasks) {
        TaskStatus status = task.getStatus();
        if (status != TaskStatus.DONE) {
            notDoneDepsBuilder.add(task);
            if (task.compareAndSetStatus(TaskStatus.NOT_SCHEDULED, TaskStatus.SCHEDULED)) {
                sharedQueue.putFirst(task);
            }//  w w w  . ja va 2  s  .  c om
        }
        propagateException(task);
    }

    return notDoneDepsBuilder.build();
}

From source file:dagger.internal.codegen.InjectValidator.java

private ValidationReport<ExecutableElement> validateMethod(ExecutableElement methodElement) {
    ValidationReport.Builder<ExecutableElement> builder = ValidationReport.about(methodElement);
    Set<Modifier> modifiers = methodElement.getModifiers();
    if (modifiers.contains(ABSTRACT)) {
        builder.addError(ABSTRACT_INJECT_METHOD, methodElement);
    }//from   w  w w.  ja v  a  2 s. c o m

    if (modifiers.contains(PRIVATE)) {
        builder.addItem(PRIVATE_INJECT_METHOD,
                privateAndStaticInjectionDiagnosticKind.orElse(compilerOptions.privateMemberValidationKind()),
                methodElement);
    }

    if (modifiers.contains(STATIC)) {
        builder.addItem(STATIC_INJECT_METHOD,
                privateAndStaticInjectionDiagnosticKind.orElse(compilerOptions.staticMemberValidationKind()),
                methodElement);
    }

    if (!methodElement.getTypeParameters().isEmpty()) {
        builder.addError(GENERIC_INJECT_METHOD, methodElement);
    }

    for (VariableElement parameter : methodElement.getParameters()) {
        ImmutableSet<? extends AnnotationMirror> qualifiers = getQualifiers(parameter);
        if (qualifiers.size() > 1) {
            for (AnnotationMirror qualifier : qualifiers) {
                builder.addError(MULTIPLE_QUALIFIERS, methodElement, qualifier);
            }
        }
        if (FrameworkTypes.isProducerType(parameter.asType())) {
            builder.addError(provisionMayNotDependOnProducerType(parameter.asType()), parameter);
        }
    }

    return builder.build();
}

From source file:google.registry.export.ExportDomainListsAction.java

@Override
public void run() {
    ImmutableSet<String> realTlds = getTldsOfType(TldType.REAL);
    logger.infofmt("Exporting domain lists for tlds %s", realTlds);
    response.sendJavaScriptRedirect(createJobPath(mrRunner.setJobName("Export domain lists")
            .setModuleName("backend").setDefaultReduceShards(Math.min(realTlds.size(), MAX_NUM_REDUCE_SHARDS))
            .runMapreduce(new ExportDomainListsMapper(DateTime.now(UTC), realTlds),
                    new ExportDomainListsReducer(gcsBucket, gcsBufferSize),
                    ImmutableList.of(createEntityInput(DomainResource.class)))));
}

From source file:org.apache.sentry.provider.common.ResourceAuthorizationProvider.java

private ImmutableSet<String> appendDefaultDBPriv(ImmutableSet<String> privileges,
        Authorizable[] authorizables) {/*from  w  ww. j  av a 2 s . c o m*/
    // Only for switch db
    if ((authorizables != null) && (authorizables.length == 4) && (authorizables[2].getName().equals("+"))) {
        if ((privileges.size() == 1) && hasOnlyServerPrivilege(privileges.asList().get(0))) {
            // Assuming authorizable[0] will always be the server
            // This Code is only reachable only when user fires a 'use default'
            // and the user has a privilege on atleast 1 privilized Object
            String defaultPriv = "Server=" + authorizables[0].getName()
                    + "->Db=default->Table=*->Column=*->action=select";
            HashSet<String> newPrivs = Sets.newHashSet(defaultPriv);
            return ImmutableSet.copyOf(newPrivs);
        }
    }
    return privileges;
}

From source file:com.facebook.buck.distributed.build_slave.ReverseDepBuildTargetsQueue.java

private void processFinishedNode(DistributableNode target) {
    if (seenFinishedNodes.contains(target.getTargetName())) {
        String errorMessage = String.format("[%s] has already finished once", target.getTargetName());
        LOG.error(errorMessage);// w  w w .j  a  va  2s.c  o  m
        throw new RuntimeException(errorMessage);
    }
    seenFinishedNodes.add(target.getTargetName());
    finishedCacheableNodes += (target.isUncacheable() ? 0 : 1);

    ImmutableSet<String> dependents = target.dependentTargets;
    LOG.debug(
            String.format("Complete node [%s] has [%s] dependents", target.getTargetName(), dependents.size()));
    for (String dependent : dependents) {
        DistributableNode dep = Objects.requireNonNull(distributableBuildGraph.getNode(dependent));
        dep.finishDependency(target.getTargetName());

        if (dep.areAllDependenciesResolved() && !dep.isUncacheable()
                && !seenWorkingCacheableNodes.contains(dep.getTargetName())) {
            zeroDependencyTargets.add(dep.getTargetName());
        } else if (dep.areAllDependenciesResolved() && dep.isUncacheable()) {
            LOG.debug(
                    String.format("Uncachable dependent [%s] is ready to auto complete.", dep.getTargetName()));
            zeroDependencyTargets.add(dep.getTargetName());
            uncachableZeroDependencyTargets.add(dep.getTargetName());
        } else if (dep.areAllDependenciesResolved()) {
            // If a child node made a parent node ready to build, but that parent node is already
            // part of a work unit, then no need to add it to zero dependency list (it is already
            // being build by the minion that just completed the child).
            LOG.debug(String.format("Dependent [%s] is ready, but already build as part of work unit.",
                    dep.getTargetName()));
        }
    }
}

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

int invalidatePath(Path path) {
    try (AutoCloseableLock writeLock = rawAndComputedNodesLock.writeLock()) {
        int invalidatedRawNodes = 0;
        ImmutableSet<Map<String, Object>> rawNodes = allRawNodes.getIfPresent(path);
        if (rawNodes != null) {
            // Increment the counter
            invalidatedRawNodes = rawNodes.size();
            for (Map<String, Object> rawNode : rawNodes) {
                UnflavoredBuildTarget target = RawNodeParsePipeline.parseBuildTargetFromRawRule(cell.getRoot(),
                        rawNode, path);//from w w  w . jav  a2s  .  com
                LOG.debug("Invalidating target for path %s: %s", path, target);
                for (CacheImpl<?> cache : typedNodeCaches.values()) {
                    cache.allComputedNodes.invalidateAll(targetsCornucopia.get(target));
                }
                targetsCornucopia.removeAll(target);
            }
            allRawNodes.invalidate(path);
        }

        // We may have been given a file that other build files depend on. Iteratively remove those.
        Iterable<Path> dependents = buildFileDependents.get(path);
        LOG.debug("Invalidating dependents for path %s: %s", path, dependents);
        for (Path dependent : dependents) {
            if (dependent.equals(path)) {
                continue;
            }
            invalidatedRawNodes += invalidatePath(dependent);
        }
        buildFileDependents.removeAll(path);
        buildFileConfigs.remove(path);
        buildFileEnv.remove(path);

        return invalidatedRawNodes;
    }
}

From source file:dagger.internal.codegen.DependencyRequestMapper.java

/**
 * Returns the framework class to use for a collection of requests of the same {@link BindingKey}.
 * This allows factories to only take a single argument for multiple requests of the same key.
 *//*  w  w w  .ja  v  a 2  s .  c o m*/
Class<?> getFrameworkClass(Iterable<DependencyRequest> requests) {
    ImmutableSet<Class<?>> classes = FluentIterable.from(requests)
            .transform(new Function<DependencyRequest, Class<?>>() {
                @Override
                public Class<?> apply(DependencyRequest request) {
                    return getFrameworkClass(request);
                }
            }).toSet();
    if (classes.size() == 1) {
        return getOnlyElement(classes);
    } else if (classes.equals(ImmutableSet.of(Producer.class, Provider.class))) {
        return Provider.class;
    } else {
        throw new IllegalStateException("Bad set of framework classes: " + classes);
    }
}