Example usage for com.google.common.base Predicates and

List of usage examples for com.google.common.base Predicates and

Introduction

In this page you can find the example usage for com.google.common.base Predicates and.

Prototype

public static <T> Predicate<T> and(Predicate<? super T> first, Predicate<? super T> second) 

Source Link

Document

Returns a predicate that evaluates to true if both of its components evaluate to true .

Usage

From source file:org.jon.ivmark.graphit.recommendation.service.ItemBasedRecommendationService.java

private List<Item> recommendFor(String itemId, CompositeRecommendationSettings recommendationSettings) {
    int maxNumberOfRecommendedItems = recommendationSettings.getMaxNumberOfRecommendedItems();
    List<Item> result = new ArrayList<Item>(maxNumberOfRecommendedItems);

    Predicate<Properties> commonFilter = recommendationSettings.filter();

    for (RecommendationSettings rs : recommendationSettings.getRecommendationSettings()) {
        if (result.size() == maxNumberOfRecommendedItems) {
            break;
        }/*from   w  ww  . j ava2 s  .  com*/

        Predicate<Properties> filter = Predicates.and(commonFilter, rs.filter());
        int numItems = Math.min(maxNumberOfRecommendedItems - result.size(),
                rs.getMaxNumberOfRecommendedItems());
        Recommendation recommendation = recommender.recommend(itemId, rs.getSimilarityType()).filter(filter)
                .limit(numItems);
        addRecommendedItems(result, recommendation);
    }

    Iterable<Item> fallback = getFallback(recommendationSettings, maxNumberOfRecommendedItems - result.size());
    addRecommendedItems(result, fallback);
    return result;
}

From source file:com.foundationdb.server.types.mcompat.mfuncs.MIfNull.java

private static TScalar[] createInstances() {
    List<TScalar> resultsList = new ArrayList<>();
    Collection<? extends TClass> strings = Arrays.asList(MString.VARCHAR, MString.CHAR, MString.TINYTEXT,
            MString.TEXT, MString.MEDIUMTEXT, MString.LONGTEXT);
    Collection<? extends TClass> datetimes = Arrays.asList(MDateAndTime.DATETIME, MDateAndTime.DATE,
            MDateAndTime.TIME, MDateAndTime.TIMESTAMP);
    Collection<? extends TClass> approx = Arrays.asList(MApproximateNumber.DOUBLE,
            MApproximateNumber.DOUBLE_UNSIGNED, MApproximateNumber.FLOAT, MApproximateNumber.FLOAT_UNSIGNED,
            MNumeric.DECIMAL, MNumeric.DECIMAL_UNSIGNED, MNumeric.TINYINT, MNumeric.SMALLINT, MNumeric.INT,
            MNumeric.MEDIUMINT, MNumeric.BIGINT, MNumeric.TINYINT_UNSIGNED, MNumeric.SMALLINT_UNSIGNED,
            MNumeric.INT_UNSIGNED, MNumeric.MEDIUMINT_UNSIGNED, MNumeric.BIGINT_UNSIGNED);

    // Strings go first, each in its own group to get around the fact that there is no strong casts to strings
    for (TClass tClass : strings) {
        Predicate<List<? extends TPreptimeValue>> containsTClass = IsCandidatePredicates.contains(tClass);
        Predicate<List<? extends TPreptimeValue>> predicate = Predicates.and(containsTClass,
                IsCandidatePredicates.allTypesKnown);
        resultsList.add(new MIfNull(tClass, resultsList.size(), predicate));
    }//ww w. j  ava 2 s  .com

    // Next, date/times go, grouped together. After them come numbers. In both cases, strong casts work as needed.
    createAsGroup(resultsList, datetimes);
    createAsGroup(resultsList, approx);

    // Finally, put another varchar as a catch-all
    resultsList.add(new MIfNull(MString.VARCHAR, resultsList.size(), null));

    return resultsList.toArray(new TScalar[resultsList.size()]);
}

From source file:com.qcadoo.mes.productionPerShift.hooks.OrderDetailsHooksPPS.java

public void onBeforeRender(final ViewDefinitionState view) {
    Predicate<Entity> predicate = Predicates.and(HAS_DEFINED_PLANNED_START_DATE,
            OrderDetailsRibbonHelper.HAS_CHECKED_OR_ACCEPTED_TECHNOLOGY);
    orderDetailsRibbonHelper.setButtonEnabled(view, "orderProgressPlans", "productionPerShift", predicate,
            Optional.of("orders.ribbon.message.mustChangeTechnologyState"));

    FormComponent form = (FormComponent) view.getComponentByReference("form");
    if (form.getEntityId() != null) {
        checkOrderDates(view, form.getPersistedEntityWithIncludedFormValues());
    }/*from  w w w. j  a va  2  s. c o  m*/
}

From source file:io.crate.analyze.copy.NodeFilters.java

NodeFilters(@Nullable String name, @Nullable String id) {
    if (name == null && id == null) {
        innerPredicate = Predicates.alwaysTrue();
    } else {//from  w  w w .j  a va 2s .  com
        Predicate<DiscoveryNode> namesPredicate = name == null ? Predicates.<DiscoveryNode>alwaysTrue()
                : new NamesPredicate(name);
        Predicate<DiscoveryNode> idsPredicate = id == null ? Predicates.<DiscoveryNode>alwaysTrue()
                : new IdsPredicate(id);
        innerPredicate = Predicates.and(namesPredicate, idsPredicate);
    }
}

From source file:com.marvelution.bamboo.plugins.sonar.tasks.predicates.SonarPredicates.java

/**
 * Get the Is Sonar Server dependency task {@link Predicate}
 * //  w  ww .  jav  a2 s  .c  o m
 * @param server
 * @return {@link Predicates#and(Predicate, Predicate)} implementation combining the {@link #isSonarTask()} and
 *         the {@link IsSonarConfigurationSettingDependentPredicate} predicates
 */
public static Predicate<TaskDefinition> isSonarServerDependingTask(final SonarServer server) {
    return Predicates.and(isSonarTask(),
            new IsSonarConfigurationSettingDependentPredicate(CFG_SONAR_ID, String.valueOf(server.getID())));
}

From source file:org.apache.druid.sql.calcite.rule.DruidSemiJoinRule.java

private DruidSemiJoinRule() {
    super(operand(Project.class,
            operand(Join.class, null, IS_LEFT_OR_INNER,
                    some(operand(DruidRel.class, null,
                            Predicates.and(DruidRules.CAN_BUILD_ON, Predicates.not(IS_GROUP_BY)), any()),
                            operand(DruidRel.class, null, IS_GROUP_BY, any())))));
}

From source file:com.google.cloud.dataflow.sdk.util.FileIOChannelFactory.java

@Override
public Collection<String> match(String spec) throws IOException {
    File file = new File(spec);

    File parent = file.getAbsoluteFile().getParentFile();
    if (!parent.exists()) {
        throw new IOException("Unable to find parent directory of " + spec);
    }/*  w ww . j a va 2 s  . c o m*/

    // Method getAbsolutePath() on Windows platform may return something like
    // "c:\temp\file.txt". FileSystem.getPathMatcher() call below will treat
    // '\' (backslash) as an escape character, instead of a directory
    // separator. Replacing backslash with double-backslash solves the problem.
    // We perform the replacement on all platforms, even those that allow
    // backslash as a part of the filename, because Globs.toRegexPattern will
    // eat one backslash.
    String pathToMatch = file.getAbsolutePath().replaceAll(Matcher.quoteReplacement("\\"),
            Matcher.quoteReplacement("\\\\"));

    final PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:" + pathToMatch);

    Iterable<File> files = com.google.common.io.Files.fileTreeTraverser().preOrderTraversal(parent);
    Iterable<File> matchedFiles = Iterables.filter(files,
            Predicates.and(com.google.common.io.Files.isFile(), new Predicate<File>() {
                @Override
                public boolean apply(File input) {
                    return matcher.matches(input.toPath());
                }
            }));

    List<String> result = new LinkedList<>();
    for (File match : matchedFiles) {
        result.add(match.getPath());
    }

    return result;
}

From source file:org.apache.aurora.scheduler.resources.ResourceManager.java

/**
 * Gets Mesos-revocable offer resources.
 *
 * @param offer Offer to get resources from.
 * @return Mesos-revocable offer resources.
 *///  w w  w.  j ava  2 s  .c  om
public static Iterable<Resource> getRevocableOfferResources(Offer offer) {
    return Iterables.filter(offer.getResourcesList(), Predicates.and(SUPPORTED_RESOURCE, REVOCABLE));
}

From source file:io.druid.indexing.overlord.autoscaling.TasksAndWorkersFilteredByIp.java

@Override
public Collection<Worker> markWorkersLazy(final Predicate<ImmutableWorkerInfo> isLazyWorker, int maxWorkers) {
    return filter(delegate.markWorkersLazy(Predicates.and(isLazyWorker, ipFilter), maxWorkers));
}

From source file:com.marvelution.bamboo.plugins.sonar.tasks.actions.admin.ViewSonarServerMatrix.java

/**
 * Getter for buildables//from w  w  w.jav  a2 s  .c o m
 *
 * @return the buildables
 */
public Collection<Buildable> getBuildables() {
    if (buildables == null) {
        buildables = Collections2.filter(planManager.getAllPlans(Buildable.class), Predicates.and(
                Predicates.not(PlanPredicates.isSuspendedFromBuilding()), SonarPredicates.hasSonarTasks()));
    }
    return buildables;
}