List of usage examples for com.google.common.base Predicates and
public static <T> Predicate<T> and(Predicate<? super T>... components)
From source file:com.facebook.buck.android.FilterResourcesStep.java
private int doExecute(ExecutionContext context) throws IOException { List<Predicate<Path>> pathPredicates = Lists.newArrayList(); final boolean canDownscale = imageScaler != null && imageScaler.isAvailable(context); if (filterDrawables) { Set<Path> drawables = drawableFinder.findDrawables(inResDirToOutResDirMap.keySet(), context.getProjectFilesystem()); pathPredicates.add(Filters.createImageDensityFilter(drawables, targetDensities, canDownscale)); }// w w w .j av a 2s . c om if (filterStrings) { pathPredicates.add(new Predicate<Path>() { @Override public boolean apply(Path pathRelativeToProjectRoot) { if (!NON_ENGLISH_STRING_PATH.matcher(pathRelativeToProjectRoot.toString()).matches()) { return true; } for (Path whitelistedStringDir : whitelistedStringDirs) { if (pathRelativeToProjectRoot.startsWith(whitelistedStringDir)) { return true; } } nonEnglishStringFilesBuilder.add(pathRelativeToProjectRoot); return false; } }); } // Create filtered copies of all resource directories. These will be passed to aapt instead. filteredDirectoryCopier.copyDirs(context.getProjectFilesystem(), inResDirToOutResDirMap, Predicates.and(pathPredicates)); // If an ImageScaler was specified, but only if it is available, try to apply it. if (canDownscale && filterDrawables) { scaleUnmatchedDrawables(context); } return 0; }
From source file:forge.toolbox.ListChooser.java
@SuppressWarnings("unchecked") public void applyFilters() { lstChoices.clearSelection();/* ww w. ja v a 2 s . co m*/ List<Predicate<? super T>> predicates = new ArrayList<Predicate<? super T>>(); final String pattern = txtSearch.getText().toLowerCase(); if (!pattern.isEmpty()) { predicates.add(new Predicate<T>() { @Override public boolean apply(T input) { return lstChoices.getChoiceText(input).toLowerCase().contains(pattern); } }); } if (advancedSearchFilter != null && !advancedSearchFilter.isEmpty()) { predicates.add((Predicate<? super T>) advancedSearchFilter.getPredicate()); } if (predicates.isEmpty()) { lstChoices.setListData(list); } else { lstChoices.setListData(Iterables.filter(list, Predicates.and(predicates))); } if (!lstChoices.isEmpty() && lstChoices.getMaxChoices() > 0) { lstChoices.addSelectedIndex(0); } lstChoices.setScrollTop(0); }
From source file:org.sonatype.nexus.timeline.feeds.sources.AbstractFeedSource.java
/** * Creates predicates out of the map keys and values. It consider entry key for key, and value as "allowed value". * Hence, for values, one might use comma separated values. It uses {@link AnyOfFilter} to implement predicate for * each map entry. Values are turned into sets in method {@link #valueSet(String)}. * <p/>/*from ww w . j a v a 2 s.com*/ * Example HTTP request with query parameters {@code ?foo=1&bar=a,b,c} will be turned into predicates like * (pseudo code): * <pre> * and( * value of "foo" member of {1}, // this basically means "foo=1" * value of "bar" member of {a,b,c}, // this basically means "bar" value is in set of {a,b,c} * ); * </pre> * * @see {@link AnyOfFilter} * @see {@link #valueSet(String)} */ protected Predicate<Entry> filters(final Map<String, String> params) { if (params.isEmpty()) { return Predicates.alwaysTrue(); } final List<Predicate<Entry>> filters = Lists.newArrayList(); for (Map.Entry<String, String> param : params.entrySet()) { // TODO: maybe all with "_" as prefix? But then how to filter for type and subType? if (param.getKey().equals("_dc")) { continue; } final AnyOfFilter filter = new AnyOfFilter(param.getKey(), valueSet(param.getValue())); filters.add(filter); } return Predicates.and(filters); }
From source file:com.textocat.textokit.io.brat.AutoBratUimaMappingFactory.java
private Type searchTypeByBaseName(String baseName) { @SuppressWarnings("unchecked") Iterator<Type> iter = Iterators.filter(ts.getTypeIterator(), Predicates .and(asList(annotationTypePredicate, typeBaseNamePredicate(baseName), namespacePredicate))); Type result = null;/*from w ww .ja v a2 s.c o m*/ if (iter.hasNext()) { result = iter.next(); if (iter.hasNext()) { throw new IllegalStateException(String .format("There are at least two types with target basename: %s, %s", result, iter.next())); } } return result; }
From source file:org.sonatype.nexus.plugins.capabilities.internal.rest.StoresResource.java
private Predicate<Repository> hasNoneOfFacets(@Nullable final List<String> facets) { if (facets != null && !facets.isEmpty()) { List<Predicate<Repository>> predicates = Lists.newArrayList(); for (String facet : facets) { if (StringUtils.isNotEmpty(facet) && facet.startsWith("!")) { String actualFacet = facet.substring(1); try { final Class<?> facetClass = getClass().getClassLoader().loadClass(actualFacet); predicates.add(new Predicate<Repository>() { @Override public boolean apply(@Nullable final Repository input) { return input != null && !input.getRepositoryKind().isFacetAvailable(facetClass); }/*from www.j a v a2 s .c om*/ }); } catch (ClassNotFoundException e) { log.warn("Repositories will not be filtered by facet {} as it could not be loaded", actualFacet); } } } if (!predicates.isEmpty()) { if (predicates.size() == 1) { return predicates.get(0); } return Predicates.and(predicates); } } return null; }
From source file:org.apache.brooklyn.core.objs.ConstraintSerialization.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private void init() { PredicateSerializationRuleAdder.predicateListConstructor((o) -> ConfigConstraints.required()) .equivalentPredicates(StringPredicates.isNonBlank()).add(this); PredicateSerializationRuleAdder.predicateListConstructor((o) -> Predicates.or((Iterable) o)) .preferredName("any").equivalentNames("or").add(this); PredicateSerializationRuleAdder/* w w w .jav a2 s . c o m*/ .predicateListConstructor( (o) -> /* and predicate is default when given list */ toPredicateFromJson(o)) .preferredName("all").sample(Predicates.and(Collections.emptyList())).equivalentNames("and") .add(this); PredicateSerializationRuleAdder.noArgConstructor(Predicates::alwaysFalse).add(this); PredicateSerializationRuleAdder.noArgConstructor(Predicates::alwaysTrue).add(this); PredicateSerializationRuleAdder.noArgConstructor(Predicates::notNull).add(this); PredicateSerializationRuleAdder.noArgConstructor(ResourcePredicates::urlExists).preferredName("urlExists") .add(this); PredicateSerializationRuleAdder.noArgConstructor(StringPredicates::isBlank).add(this); PredicateSerializationRuleAdder.stringConstructor(StringPredicates::matchesRegex).preferredName("regex") .add(this); PredicateSerializationRuleAdder.stringConstructor(StringPredicates::matchesGlob).preferredName("glob") .add(this); PredicateSerializationRuleAdder.stringConstructor(ConfigConstraints::forbiddenIf).add(this); PredicateSerializationRuleAdder.stringConstructor(ConfigConstraints::forbiddenUnless).add(this); PredicateSerializationRuleAdder.stringConstructor(ConfigConstraints::requiredIf).add(this); PredicateSerializationRuleAdder.stringConstructor(ConfigConstraints::requiredUnless).add(this); PredicateSerializationRuleAdder.listConstructor(ConfigConstraints::requiredUnlessAnyOf).add(this); PredicateSerializationRuleAdder.listConstructor(ConfigConstraints::forbiddenUnlessAnyOf).add(this); }
From source file:org.sosy_lab.cpachecker.cfa.postprocessing.function.CFunctionPointerResolver.java
private Predicate<Pair<CFunctionCall, CFunctionType>> getFunctionSetPredicate( Collection<FunctionSet> pFunctionSets) { // note that this set is sorted according to the declaration order of the enum EnumSet<FunctionSet> functionSets = EnumSet.copyOf(pFunctionSets); if (functionSets.contains(FunctionSet.EQ_PARAM_TYPES) || functionSets.contains(FunctionSet.EQ_PARAM_SIZES)) { functionSets.add(FunctionSet.EQ_PARAM_COUNT); // TYPES and SIZES need COUNT checked first }/*from ww w .j a va 2 s .co m*/ List<Predicate<Pair<CFunctionCall, CFunctionType>>> predicates = new ArrayList<>(); for (FunctionSet functionSet : functionSets) { switch (functionSet) { case ALL: // do nothing break; case EQ_PARAM_COUNT: predicates.add(new Predicate<Pair<CFunctionCall, CFunctionType>>() { @Override public boolean apply(Pair<CFunctionCall, CFunctionType> pInput) { boolean result = checkParamSizes(pInput.getFirst().getFunctionCallExpression(), pInput.getSecond()); if (!result) { logger.log(Level.FINEST, "Function call", pInput.getFirst().toASTString(), "does not match function", pInput.getSecond(), "because of number of parameters."); } return result; } }); break; case EQ_PARAM_SIZES: predicates.add(new Predicate<Pair<CFunctionCall, CFunctionType>>() { @Override public boolean apply(Pair<CFunctionCall, CFunctionType> pInput) { return checkReturnAndParamSizes(pInput.getFirst().getFunctionCallExpression(), pInput.getSecond()); } }); break; case EQ_PARAM_TYPES: predicates.add(new Predicate<Pair<CFunctionCall, CFunctionType>>() { @Override public boolean apply(Pair<CFunctionCall, CFunctionType> pInput) { return checkReturnAndParamTypes(pInput.getFirst().getFunctionCallExpression(), pInput.getSecond()); } }); break; case RETURN_VALUE: predicates.add(new Predicate<Pair<CFunctionCall, CFunctionType>>() { @Override public boolean apply(Pair<CFunctionCall, CFunctionType> pInput) { return checkReturnValue(pInput.getFirst(), pInput.getSecond()); } }); break; case USED_IN_CODE: // Not necessary, only matching functions are in the // candidateFunctions set break; default: throw new AssertionError(); } } return Predicates.and(predicates); }
From source file:brooklyn.rest.resources.CatalogResource.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private <T, SpecT> List<CatalogItemSummary> getCatalogItemSummariesMatchingRegexFragment( Predicate<CatalogItem<T, SpecT>> type, String regex, String fragment) { List filters = new ArrayList(); filters.add(type);// w w w . ja v a 2 s .c o m if (Strings.isNonEmpty(regex)) filters.add(CatalogPredicates.xml(StringPredicates.containsRegex(regex))); if (Strings.isNonEmpty(fragment)) filters.add(CatalogPredicates.xml(StringPredicates.containsLiteralIgnoreCase(fragment))); filters.add(CatalogPredicates.entitledToSee(mgmt())); ImmutableList<CatalogItem<Object, Object>> sortedItems = FluentIterable .from(brooklyn().getCatalog().getCatalogItems()).filter(Predicates.and(filters)) .toSortedList(CatalogItemComparator.getInstance()); return Lists.transform(sortedItems, TO_CATALOG_ITEM_SUMMARY); }
From source file:forge.card.BoosterGenerator.java
/** * This method also modifies passed parameter */// ww w .ja v a 2s . c om private static Predicate<PaperCard> buildExtraPredicate(List<String> operators) { List<Predicate<PaperCard>> conditions = new ArrayList<>(); Iterator<String> itOp = operators.iterator(); while (itOp.hasNext()) { String operator = itOp.next(); if (StringUtils.isEmpty(operator)) { itOp.remove(); continue; } if (operator.endsWith("s")) { operator = operator.substring(0, operator.length() - 1); } boolean invert = operator.charAt(0) == '!'; if (invert) { operator = operator.substring(1); } Predicate<PaperCard> toAdd = null; if (operator.equalsIgnoreCase(BoosterSlots.DUAL_FACED_CARD)) { toAdd = Predicates.compose(CardRulesPredicates.splitType(CardSplitType.Transform), PaperCard.FN_GET_RULES); } else if (operator.equalsIgnoreCase(BoosterSlots.LAND)) { toAdd = Predicates.compose(CardRulesPredicates.Presets.IS_LAND, PaperCard.FN_GET_RULES); } else if (operator.equalsIgnoreCase(BoosterSlots.BASIC_LAND)) { toAdd = IPaperCard.Predicates.Presets.IS_BASIC_LAND; } else if (operator.equalsIgnoreCase(BoosterSlots.TIME_SHIFTED)) { toAdd = IPaperCard.Predicates.Presets.IS_SPECIAL; } else if (operator.equalsIgnoreCase(BoosterSlots.SPECIAL)) { toAdd = IPaperCard.Predicates.Presets.IS_SPECIAL; } else if (operator.equalsIgnoreCase(BoosterSlots.MYTHIC)) { toAdd = IPaperCard.Predicates.Presets.IS_MYTHIC_RARE; } else if (operator.equalsIgnoreCase(BoosterSlots.RARE)) { toAdd = IPaperCard.Predicates.Presets.IS_RARE; } else if (operator.equalsIgnoreCase(BoosterSlots.UNCOMMON)) { toAdd = IPaperCard.Predicates.Presets.IS_UNCOMMON; } else if (operator.equalsIgnoreCase(BoosterSlots.COMMON)) { toAdd = IPaperCard.Predicates.Presets.IS_COMMON; } else if (operator.startsWith("name(")) { operator = StringUtils.strip(operator.substring(4), "() "); String[] cardNames = TextUtil.splitWithParenthesis(operator, ',', '"', '"'); toAdd = IPaperCard.Predicates.names(Lists.newArrayList(cardNames)); } else if (operator.startsWith("color(")) { operator = StringUtils.strip(operator.substring("color(".length() + 1), "()\" "); switch (operator.toLowerCase()) { case "black": toAdd = Presets.IS_BLACK; break; case "blue": toAdd = Presets.IS_BLUE; break; case "green": toAdd = Presets.IS_GREEN; break; case "red": toAdd = Presets.IS_RED; break; case "white": toAdd = Presets.IS_WHITE; break; case "colorless": toAdd = Presets.IS_COLORLESS; break; } } else if (operator.startsWith("fromSets(")) { operator = StringUtils.strip(operator.substring("fromSets(".length() + 1), "()\" "); String[] sets = operator.split(","); toAdd = IPaperCard.Predicates.printedInSets(sets); } else if (operator.startsWith("fromSheet(") && invert) { String sheetName = StringUtils.strip(operator.substring(9), "()\" "); Iterable<PaperCard> src = StaticData.instance().getPrintSheets().get(sheetName).toFlatList(); List<String> cardNames = Lists.newArrayList(); for (PaperCard card : src) { cardNames.add(card.getName()); } toAdd = IPaperCard.Predicates.names(Lists.newArrayList(cardNames)); } if (toAdd == null) { continue; } else { itOp.remove(); } if (invert) { toAdd = Predicates.not(toAdd); } conditions.add(toAdd); } if (conditions.isEmpty()) { return Predicates.alwaysTrue(); } return Predicates.and(conditions); }
From source file:forge.quest.BoosterUtils.java
/** * parseReward - used internally to parse individual items in a challenge reward definition. * @param s//from www . j ava 2 s.c o m * String, the reward to parse * @return List<CardPrinted> */ private static List<InventoryItem> parseReward(final String s) { String[] temp = s.split(" "); List<InventoryItem> rewards = new ArrayList<>(); // last word starts with 'rare' ignore case if (temp.length > 1 && temp[temp.length - 1].regionMatches(true, 0, "rare", 0, 4)) { // Type 1: 'n [color] rares' final int qty = Integer.parseInt(temp[0]); List<Predicate<PaperCard>> preds = new ArrayList<>(); preds.add(IPaperCard.Predicates.Presets.IS_RARE_OR_MYTHIC); // Determine rarity if (temp.length > 2) { Predicate<CardRules> cr = parseRulesLimitation(temp[1]); //noinspection RedundantCast if (Predicates.alwaysTrue() != (Object) cr) { // guava has a single instance for always-const predicates preds.add(Predicates.compose(cr, PaperCard.FN_GET_RULES)); } } if (FModel.getQuest().getFormat() != null) { preds.add(FModel.getQuest().getFormat().getFilterPrinted()); } PrintSheet ps = new PrintSheet("Quest rewards"); Predicate<PaperCard> predicate = preds.size() == 1 ? preds.get(0) : Predicates.and(preds); ps.addAll(Iterables.filter(FModel.getMagicDb().getCommonCards().getAllCards(), predicate)); rewards.addAll(ps.random(qty, true)); } else if (temp.length == 2 && temp[0].equalsIgnoreCase("duplicate") && temp[1].equalsIgnoreCase("card")) { // Type 2: a duplicate card of the players choice rewards.add(new QuestRewardCardDuplicate()); } else if (temp.length >= 2 && temp[0].equalsIgnoreCase("chosen") && temp[1].equalsIgnoreCase("card")) { // Type 3: a duplicate card of the players choice rewards.add(new QuestRewardCardFiltered(temp)); } else if (temp.length >= 3 && temp[0].equalsIgnoreCase("booster") && temp[1].equalsIgnoreCase("pack")) { // Type 4: a predetermined extra booster pack rewards.add(BoosterPack.FN_FROM_SET.apply(FModel.getMagicDb().getEditions().get(temp[2]))); } else if (temp.length >= 3 && temp[0].equalsIgnoreCase("tournament") && temp[1].equalsIgnoreCase("pack")) { // Type 5: a predetermined extra tournament ("starter") pack rewards.add(TournamentPack.FN_FROM_SET.apply(FModel.getMagicDb().getEditions().get(temp[2]))); } else if (temp.length > 0) { // default: assume we are asking for a single copy of a specific card final PaperCard specific = FModel.getMagicDb().getCommonCards().getCard(s); if (specific != null) { rewards.add(specific); } } // Return the duplicate, a specified card, or an empty list return rewards; }