Example usage for org.apache.commons.collections.functors AllPredicate AllPredicate

List of usage examples for org.apache.commons.collections.functors AllPredicate AllPredicate

Introduction

In this page you can find the example usage for org.apache.commons.collections.functors AllPredicate AllPredicate.

Prototype

public AllPredicate(Predicate[] predicates) 

Source Link

Document

Constructor that performs no validation.

Usage

From source file:com.cognifide.cq.cqsm.core.scripts.ScriptFilters.java

public static Predicate filterOnSchedule(final Date date) {
    return new AllPredicate(new Predicate[] { filterExecutionEnabled(true),
            filterByExecutionMode(ExecutionMode.ON_SCHEDULE), new Predicate() {
                @Override/*from  www .  jav a  2 s. c  o m*/
                public boolean evaluate(Object o) {
                    final Script script = (Script) o;
                    return (script.getExecutionLast() == null) && script.getExecutionSchedule().before(date);
                }
            } });
}

From source file:com.discursive.jccook.collections.predicate.ImprovedPredicatedMapExample.java

public void start() {
    // Create the Predicates
    PropertyPredicate teamName = new PropertyPredicate("name");
    PropertyPredicate coachFirstName = new PropertyPredicate("coach.firstName");
    PropertyPredicate coachLastName = new PropertyPredicate("coach.lastName");

    // Tie three Predicates together into an AllPredicate
    Predicate[] predicateArray = new Predicate[] { teamName, coachFirstName, coachLastName };
    AllPredicate valuePredicate = new AllPredicate(predicateArray);

    // Decorate a HashMap with a predicate on the value
    teamMap = PredicatedMap.decorate(new HashMap(), null, valuePredicate);

    // Manufacture some teams
    Team redSox = new Team("Red Sox", new Coach("Patrick", "Moloney"));
    Team yankees = new Team("Yankees", new Coach("David", "McGarry"));
    Team dodgers = new Team("Dodgers", new Coach("Nick", "Taylor"));
    Team twins = new Team(null, new Coach("Patrick", "Moloney"));
    Team braves = new Team("Braves", null);

    // The follow put calls should work fine
    teamMap.put("RedSox", redSox);
    teamMap.put("Yankees", yankees);
    teamMap.put("Dodgers", dodgers);

    // This put should fail because the team name is null
    try {//from   w  ww.  j  a va  2  s.c  om
        teamMap.put("Twins", twins);
    } catch (IllegalArgumentException iae) {
        System.out.println("Twins put failed, as expected");
    }

    // This put should fail because the coach is null
    try {
        teamMap.put("Braves", braves);
    } catch (IllegalArgumentException iae) {
        System.out.println("Braves put failed, as expected");
    }

}

From source file:com.cognifide.cq.cqsm.core.scripts.ScriptFilters.java

public static Predicate filterOnModify(final ResourceResolver resolver) {
    return new AllPredicate(new Predicate[] { filterExecutionEnabled(true),
            filterByExecutionMode(ExecutionMode.ON_MODIFY), new Predicate() {
                @Override// w  w  w.ja v a  2  s .co m
                public boolean evaluate(Object o) {
                    return ((Script) o).isContentModified(resolver);
                }
            } });
}

From source file:com.discursive.jccook.collections.predicate.XPathPredicatedMapExample.java

public void start() {
    // Create the Predicates
    Predicate teamName = new XPathPredicate("./name");
    Predicate coachFirstName = new XPathPredicate("./coach/firstName");
    Predicate coachLastName = new XPathPredicate("./coach/lastName");

    // Create a predicate that rejects all teams with name Dodgers
    Map variables = new HashMap();
    variables.put("name", "Dodgers");
    Predicate noDodgers = new NotPredicate(new XPathPredicate("./name[. = $name]", variables));

    // Tie three Predicates together into an AllPredicate
    Predicate[] predicateArray = new Predicate[] { teamName, coachFirstName, coachLastName, noDodgers };
    AllPredicate valuePredicate = new AllPredicate(predicateArray);

    // Decorate a HashMap with a predicate on the value
    teamMap = PredicatedMap.decorate(new HashMap(), null, valuePredicate);

    // Manufacture some teams
    Team redSox = new Team("Red Sox", new Coach("Patrick", "Moloney"));
    Team yankees = new Team("Yankees", new Coach("David", "McGarry"));
    Team dodgers = new Team("Dodgers", new Coach("Nick", "Taylor"));
    Team twins = new Team(null, new Coach("Patrick", "Moloney"));
    Team braves = new Team("Braves", null);

    // The follow put calls should work fine
    teamMap.put("RedSox", redSox);
    teamMap.put("Yankees", yankees);

    // This should fail because we have a predicate checking for "Dodgers" and rejecting
    try {/*from   w  ww.  j ava 2s.co  m*/
        teamMap.put("Dodgers", dodgers);
    } catch (IllegalArgumentException iae) {
        System.out.println("Dodgers put failed, as expected");
    }

    // This put should fail because the team name is null
    try {
        teamMap.put("Twins", twins);
    } catch (IllegalArgumentException iae) {
        System.out.println("Twins put failed, as expected");
    }

    // This put should fail because the coach is null
    try {
        teamMap.put("Braves", braves);
    } catch (IllegalArgumentException iae) {
        System.out.println("Braves put failed, as expected");
    }

}

From source file:com.cognifide.cq.cqsm.core.scripts.ScriptFilters.java

public static Predicate filterOnStart(final ResourceResolver resolver) {
    return new AllPredicate(new Predicate[] { filterExecutionEnabled(true),
            new OrPredicate(filterByExecutionMode(ExecutionMode.ON_START), filterOnModify(resolver)) });
}

From source file:info.mikaelsvensson.devtools.sitesearch.SiteSearchPlugin.java

private Predicate getWordFilters() {
    Collection<Predicate> predicates = new LinkedList<Predicate>();

    predicates.add(new WordEntryNotNullFilter());

    try {/*from   ww  w .  ja va 2s . c  o m*/
        int minWordLength = Integer.parseInt(getProperties().get(PROPERTY_SEARCHBOX_INDEX_MINWORDLENGTH));
        if (minWordLength > 0) {
            predicates.add(new WordEntryLengthFilter(minWordLength));
        }
    } catch (NumberFormatException e) {
        getLog().info("Could not convert value of " + PROPERTY_SEARCHBOX_INDEX_MINWORDLENGTH + " to a number.",
                e);
    }

    boolean excludeNumbers = Boolean.getBoolean(getProperties().get(PROPERTY_SEARCHBOX_INDEX_EXCLUDENUMBERS));
    if (excludeNumbers) {
        predicates.add(new WordEntryNoNumbersFilter());
    }

    String excludeCommonWords = getProperties().get(PROPERTY_SEARCHBOX_INDEX_EXCLUDECOMMONWORDS);
    if (!StringUtils.isEmpty(excludeCommonWords)) {
        String[] localeNames = StringUtils.split(excludeCommonWords, ',');
        predicates.add(new WordEntryBlackListFilter(localeNames));
    }

    return new AllPredicate(predicates.toArray(new Predicate[predicates.size()]));
}

From source file:org.openfaces.component.filter.PredicateBuilder.java

/**
 * Used by the <code>build</code> method internally. This method shouldn't normally be invoked by application
 * developers.//from w w  w. j  a  v a2s.c o m
 */
public Object process(AndFilterCriterion criterion) {
    List<FilterCriterion> criteria = criterion.getCriteria();
    Predicate[] predicates = new Predicate[criteria.size()];
    for (int i = 0; i < criteria.size(); i++) {
        FilterCriterion filterCriterion = criteria.get(i);
        predicates[i] = (Predicate) filterCriterion.process(this);
    }
    return new AllPredicate(predicates);
}

From source file:org.openfaces.component.filter.PredicateBuilder.java

private static Predicate convertToPredicate(final ExpressionFilterCriterion expressionFilterCriterion) {
    final FilterCondition condition = expressionFilterCriterion.getCondition();

    final Object parameter = expressionFilterCriterion.getArg1();
    if (parameter == null && condition != FilterCondition.EMPTY)
        return TruePredicate.getInstance();

    final Predicate predicateFunctor = condition.process(new FilterConditionProcessor<Predicate>() {
        public Predicate processEmpty() {
            return new Predicate() {
                public boolean evaluate(Object o) {
                    return o == null || o.equals("");
                }// ww  w  .  j  a v a 2  s .c  om
            };
        }

        public Predicate processEquals() {
            Comparator comparator = getComparatorForParameter(parameter);
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                Date dayStart = ParametersInterpreter.dayStart((Date) parameter, timeZone);
                Predicate preficateForBefore = new ComparePredicate(dayStart, FilterCondition.GREATER_OR_EQUAL,
                        comparator);
                Date dayEnd = ParametersInterpreter.dayEnd((Date) parameter, timeZone);
                Predicate preficateForAfter = new ComparePredicate(dayEnd, FilterCondition.LESS_OR_EQUAL,
                        comparator);
                return new AllPredicate(new Predicate[] { preficateForBefore, preficateForAfter });
            } else if (parameter instanceof String) {
                boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
                return new AbstractStringPredicate(parameter.toString(), caseSensitive) {
                    public boolean evaluate(String parameter, String value) {
                        return value.equals(parameter);
                    }
                };
            } else {
                return new ComparePredicate(parameter, condition, comparator);
            }
        }

        public Predicate processContains() {
            boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
            return new AbstractStringPredicate(parameter.toString(), caseSensitive) {
                public boolean evaluate(String parameter, String value) {
                    return value.contains(parameter);
                }
            };
        }

        public Predicate processBegins() {
            boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
            return new AbstractStringPredicate(parameter.toString(), caseSensitive) {
                public boolean evaluate(String parameter, String value) {
                    return value.startsWith(parameter);
                }
            };
        }

        public Predicate processEnds() {
            boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
            return new AbstractStringPredicate(parameter.toString(), caseSensitive) {
                public boolean evaluate(String parameter, String value) {
                    return value.endsWith(parameter);
                }
            };
        }

        public Predicate processLess() {
            Comparator comparator = getComparatorForParameter(parameter);
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayStart((Date) parameter, timeZone);
            }
            return new ComparePredicate(correctedParameter, condition, comparator);
        }

        public Predicate processGreater() {
            Comparator comparator = getComparatorForParameter(parameter);
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayEnd((Date) parameter, timeZone);
            }
            return new ComparePredicate(correctedParameter, condition, comparator);
        }

        public Predicate processLessOrEqual() {
            Comparator comparator = getComparatorForParameter(parameter);
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayEnd((Date) parameter, timeZone);
            }
            return new ComparePredicate(correctedParameter, condition, comparator);
        }

        public Predicate processGreaterOrEqual() {
            Comparator comparator = getComparatorForParameter(parameter);
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayStart((Date) parameter, timeZone);
            }
            return new ComparePredicate(correctedParameter, condition, comparator);
        }

        public Predicate processBetween() {
            Comparator comparator = getComparatorForParameter(parameter);
            Object parameter1 = parameter;
            Object parameter2 = expressionFilterCriterion.getArg2();
            if (parameter2 == null)
                return TruePredicate.getInstance();
            if (parameter1 instanceof Date && parameter2 instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                parameter1 = ParametersInterpreter.dayStart((Date) parameter1, timeZone);
                parameter2 = ParametersInterpreter.dayEnd((Date) parameter1, timeZone);
            }
            Predicate preficateForBefore = new ComparePredicate(parameter1, FilterCondition.GREATER_OR_EQUAL,
                    comparator);
            Predicate preficateForAfter = new ComparePredicate(parameter2, FilterCondition.LESS_OR_EQUAL,
                    comparator);
            return new AllPredicate(new Predicate[] { preficateForBefore, preficateForAfter });
        }
    });

    final PropertyLocator propertyLocator = expressionFilterCriterion.getPropertyLocator();
    Predicate predicate = new Predicate() {
        public boolean evaluate(Object o) {
            return predicateFunctor.evaluate(propertyLocator.getPropertyValue(o));
        }
    };

    return (expressionFilterCriterion.isInverse()) ? new NotPredicate(predicate) : predicate;
}