List of usage examples for com.google.common.base Predicates and
public static <T> Predicate<T> and(Predicate<? super T> first, Predicate<? super T> second)
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; }