Example usage for com.google.common.collect FluentIterable from

List of usage examples for com.google.common.collect FluentIterable from

Introduction

In this page you can find the example usage for com.google.common.collect FluentIterable from.

Prototype

@Deprecated
@CheckReturnValue
public static <E> FluentIterable<E> from(FluentIterable<E> iterable) 

Source Link

Document

Construct a fluent iterable from another fluent iterable.

Usage

From source file:com.facebook.buck.distributed.BuildTargetsQueue.java

public static BuildTargetsQueue newQueue(BuildRuleResolver resolver, Iterable<BuildTarget> targetsToBuild) {
    // Build the reverse dependency graph by traversing the action graph Top-Down.
    Map<String, Set<String>> allReverseDeps = new HashMap<>();
    Map<String, Integer> numberOfDependencies = new HashMap<>();
    Set<String> visitedTargets = Sets.newHashSet();
    Queue<BuildRule> buildRulesToProcess = Lists
            .newLinkedList(FluentIterable.from(targetsToBuild).transform(x -> {
                BuildRule rule = resolver.getRule(x);
                visitedTargets.add(ruleToTarget(rule));
                return rule;
            }));//w w  w.  j  av a  2 s  .  c o  m
    while (!buildRulesToProcess.isEmpty()) {
        BuildRule rule = buildRulesToProcess.remove();
        String target = ruleToTarget(rule);
        numberOfDependencies.put(target, rule.getBuildDeps().size());
        for (BuildRule dependencyRule : rule.getBuildDeps()) {
            String dependencyTarget = ruleToTarget(dependencyRule);
            if (!allReverseDeps.containsKey(dependencyTarget)) {
                allReverseDeps.put(dependencyTarget, Sets.newHashSet());
            }
            allReverseDeps.get(dependencyTarget).add(target);

            if (!visitedTargets.contains(dependencyTarget)) {
                visitedTargets.add(dependencyTarget);
                buildRulesToProcess.add(dependencyRule);
            }
        }
    }

    // Do the reference counting and create the EnqueuedTargets.
    List<EnqueuedTarget> zeroDependencyTargets = new ArrayList<>();
    Map<String, EnqueuedTarget> allEnqueuedTargets = new HashMap<>();
    for (String target : visitedTargets) {
        Iterable<String> currentRevDeps = null;
        if (allReverseDeps.containsKey(target)) {
            currentRevDeps = allReverseDeps.get(target);
        } else {
            currentRevDeps = new ArrayList<>();
        }

        EnqueuedTarget enqueuedTarget = new EnqueuedTarget(target, ImmutableList.copyOf(currentRevDeps),
                Preconditions.checkNotNull(numberOfDependencies.get(target)));
        allEnqueuedTargets.put(target, enqueuedTarget);

        if (enqueuedTarget.areAllDependenciesResolved()) {
            zeroDependencyTargets.add(enqueuedTarget);
        }
    }

    return new BuildTargetsQueue(zeroDependencyTargets, allEnqueuedTargets);
}

From source file:com.greensopinion.finance.services.web.model.PeriodTransactions.java

public PeriodTransactions(String name, List<Transaction> transactions) {
    this.name = checkNotNull(name);
    this.transactions = FluentIterable.from(transactions)
            .transform(new Function<Transaction, TransactionModel>() {

                @Override//ww w.  j a  v  a 2  s.com
                public TransactionModel apply(Transaction transaction) {
                    return new TransactionModel(transaction);
                }
            }).toList();
}

From source file:org.onosproject.pce.util.LinkServiceAdapter.java

@Override
public Iterable<Link> getActiveLinks() {
    return FluentIterable.from(getLinks()).filter(input -> input.state() == State.ACTIVE);
}

From source file:springfox.documentation.spi.schema.AlternateTypeProvider.java

public ResolvedType alternateFor(ResolvedType type) {
    Optional<AlternateTypeRule> matchingRule = FluentIterable.from(rules).firstMatch(thatAppliesTo(type));
    if (matchingRule.isPresent()) {
        return matchingRule.get().alternateFor(type);
    }//  w w  w. j  a  v a 2s.c  om
    return type;
}

From source file:br.com.caelum.vraptor.interceptor.PackagesAcceptor.java

@Override
public boolean validate(ControllerMethod method, ControllerInstance instance) {
    String controllerPackageName = instance.getBeanClass().getPackageName();

    return FluentIterable.from(allowedPackages).anyMatch(currentOrSubpackage(controllerPackageName));
}

From source file:models.UserMembership.java

/**
 * Looks up the organizations the user is a part of.
 *
 * @param userName the user name//  w  ww. j  a v  a2s  .com
 * @return a list of organizations
 */
public static List<Owner> getOrgsForUser(final String userName) {
    final List<UserMembership> memberships = FINDER.fetch("org").where().eq("user_name", userName).findList();
    return FluentIterable.from(memberships).transform(new Function<UserMembership, Owner>() {
        @Nullable
        @Override
        public Owner apply(final UserMembership userMembership) {
            return userMembership.getOrg();
        }
    }).toList();
}

From source file:com.freiheit.fuava.simplebatch.processor.BatchProcessor.java

@Override
public Iterable<Result<Input, BatchProcessorResult<P>>> process(
        final Iterable<Result<Input, Output>> iterable) {
    final List<Result<Input, Output>> success = FluentIterable.from(iterable).filter(Result::isSuccess)
            .toList();//from   w  w  w . j a v  a  2 s .c  o  m
    final List<Result<Input, Output>> fails = FluentIterable.from(iterable).filter(Result::isFailed).toList();

    final ImmutableList.Builder<Result<Input, BatchProcessorResult<P>>> resultBuilder = ImmutableList.builder();
    if (!success.isEmpty()) {
        final List<Input> successInputs = FluentIterable.from(success).transform(Result::getInput).toList();
        final List<Output> successOutputs = FluentIterable.from(success).transform(Result::getOutput).toList();

        final Iterable<Result<List<Input>, P>> batchResults = this.delegee.process(
                ImmutableList.of(Result.<List<Input>, List<Output>>success(successInputs, successOutputs)));

        for (final Result<List<Input>, P> r : batchResults) {
            final List<Input> inputs = r.getInput();
            final P batchOutput = r.getOutput();
            int row = 0;
            final int total = inputs.size();
            for (final Input input : inputs) {
                resultBuilder.add(Result.success(input, new BatchProcessorResult<P>(batchOutput, row, total)));
                row++;
            }
        }
    }

    for (final Result<Input, Output> fail : fails) {
        resultBuilder.add(Result.<Input, BatchProcessorResult<P>>builder(fail).failed());
    }
    return resultBuilder.build();
}

From source file:com.b2international.snowowl.datastore.server.snomed.history.SnomedHistoryUtils.java

public static String getLabelForConcept(final Concept concept) {
    checkArgument(CDOUtils.checkObject(concept));

    // TODO this code belongs to the client where lang.refset preference is actually available
    final LanguageSetting langSetting = ApplicationContext.getServiceForClass(LanguageSetting.class);
    Optional<Description> preferredTerm = FluentIterable.from(concept.getDescriptions())
            .firstMatch(new Predicate<Description>() {
                @Override/*w  ww. ja v  a2s. co m*/
                public boolean apply(Description input) {
                    return SnomedModelExtensions.isPreferred(input,
                            langSetting.getLanguagePreference().get(0).getLanguageRefSetId());
                }
            });

    return preferredTerm.isPresent() ? preferredTerm.get().getTerm() : concept.getFullySpecifiedName();
}

From source file:google.registry.util.SendEmailUtils.java

/**
 * Sends an email from Nomulus to the specified recipients. Returns true iff sending was
 * successful.//from www .ja  v  a 2  s.c om
 */
public static boolean sendEmail(Iterable<String> addresses, final String subject, String body) {
    try {
        Message msg = emailService.createMessage();
        msg.setFrom(new InternetAddress(CONFIG.getGoogleAppsSendFromEmailAddress(),
                CONFIG.getGoogleAppsAdminEmailDisplayName()));
        List<InternetAddress> emails = FluentIterable.from(addresses)
                .transform(new Function<String, InternetAddress>() {
                    @Override
                    public InternetAddress apply(String emailAddress) {
                        try {
                            return new InternetAddress(emailAddress);
                        } catch (AddressException e) {
                            logger.severefmt(e, "Could not send email to %s with subject '%s'.", emailAddress,
                                    subject);
                            // Returning null excludes this address from the list of recipients on the email.
                            return null;
                        }
                    }
                }).filter(Predicates.notNull()).toList();
        if (emails.isEmpty()) {
            return false;
        }
        msg.addRecipients(Message.RecipientType.TO, toArray(emails, InternetAddress.class));
        msg.setSubject(subject);
        msg.setText(body);
        emailService.sendMessage(msg);
    } catch (Throwable t) {
        logger.severefmt(t, "Could not email to addresses %s with subject '%s'.",
                Joiner.on(", ").join(addresses), subject);
        return false;
    }
    return true;
}

From source file:com.cognifide.aet.runner.conversion.SuiteMergeStrategy.java

/**
 * Merges current and pattern suite. All comments, version and patterns in current suite are overwritten from pattern suite.
 *
 * @param current - current run suite.//ww w.  java2  s  .c o m
 * @param pattern - pattern suite, usually the last run.
 * @return merged suite.
 */
public static Suite merge(Suite current, Suite pattern) {
    final ImmutableMap<String, Test> tests = FluentIterable.from(current.getTests()).uniqueIndex(TEST_TO_MAP);

    if (pattern != null) {
        current.setVersion(pattern.getVersion() + 1);
        updateComment(current, pattern);
        for (Test patternTest : pattern.getTests()) {
            if (tests.containsKey(patternTest.getName())) {
                mergeTest(tests.get(patternTest.getName()), patternTest);
            }
        }
    } else {
        current.setVersion(1L);
    }
    return current;
}