<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FApache_Common%2FPredicate</id>
		<title>Java/Apache Common/Predicate - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FApache_Common%2FPredicate"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Apache_Common/Predicate&amp;action=history"/>
		<updated>2026-05-15T10:29:01Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/Apache_Common/Predicate&amp;diff=9051&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Apache_Common/Predicate&amp;diff=9051&amp;oldid=prev"/>
				<updated>2010-06-01T07:23:37Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:23, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/Apache_Common/Predicate&amp;diff=9050&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/Apache_Common/Predicate&amp;diff=9050&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Bean Predicate with Equal Predicate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
package com.googelcode.jpractices.rumon;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 */&lt;br /&gt;
public class Person {&lt;br /&gt;
  private String firstName;&lt;br /&gt;
  private String lastName;&lt;br /&gt;
  private int salary;&lt;br /&gt;
  public Person(String firstName, String lastName, int salary) {&lt;br /&gt;
    super();&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  public String getFirstName() {&lt;br /&gt;
    return firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setFirstName(String firstName) {&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public String getLastName() {&lt;br /&gt;
    return lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setLastName(String lastName) {&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public int getSalary() {&lt;br /&gt;
    return salary;&lt;br /&gt;
  }&lt;br /&gt;
  public void setSalary(int salary) {&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  @Override&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return ToStringBuilder.reflectionToString(this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
--------------------------------&lt;br /&gt;
package com.googelcode.jpractices;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import org.apache.rumons.beanutils.BeanPredicate;&lt;br /&gt;
import org.apache.rumons.collections.CollectionUtils;&lt;br /&gt;
import org.apache.rumons.collections.functors.EqualPredicate;&lt;br /&gt;
import com.googelcode.jpractices.rumon.Person;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class PredicateExample {&lt;br /&gt;
  List&amp;lt;Person&amp;gt; personList = new ArrayList&amp;lt;Person&amp;gt;();&lt;br /&gt;
  /**&lt;br /&gt;
   * Basic method which creates the list of person object&amp;quot;s&lt;br /&gt;
   *&lt;br /&gt;
   */&lt;br /&gt;
  void setUpData() {&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;gowtham&amp;quot;, 25000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;britney&amp;quot;, &amp;quot;spears&amp;quot;, 45000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;tom&amp;quot;, 35000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;sunny&amp;quot;, &amp;quot;dummy&amp;quot;, 45000));&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * select&amp;quot;s the Person object&amp;quot;s from collection of person objects based on arg&lt;br /&gt;
   * @param propertyName - Person&amp;quot;s attribute (firstName (or) lastName (or) salary )&lt;br /&gt;
   * @param value - Value to be compared to propertyName&lt;br /&gt;
   */&lt;br /&gt;
  void selectObjectsByName(String propertyName, String value) {&lt;br /&gt;
    EqualPredicate nameEqlPredicate = new EqualPredicate(value);&lt;br /&gt;
    BeanPredicate beanPredicate = new BeanPredicate(propertyName, nameEqlPredicate);&lt;br /&gt;
    Collection&amp;lt;Person&amp;gt; filteredCollection = CollectionUtils.select(personList, beanPredicate);&lt;br /&gt;
    System.out.println(&amp;quot;Below are person object(s) whose &amp;quot; + propertyName + &amp;quot; is &amp;quot; + value);&lt;br /&gt;
    System.out.println(&amp;quot;Matches for entered criteria &amp;quot;&lt;br /&gt;
        + CollectionUtils.countMatches(personList, beanPredicate));&lt;br /&gt;
    for (Person person : filteredCollection) {&lt;br /&gt;
      System.out.println(person);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * select&amp;quot;s the person object from collcetion based on propetyName and value&lt;br /&gt;
   * @param propertyName - Person&amp;quot;s attribute (firstName (or) lastName (or) salary )&lt;br /&gt;
   * @param value - Value to be compared to propertyName&lt;br /&gt;
   */&lt;br /&gt;
  void selectObjectFromCollection(String propertyName, String value) {&lt;br /&gt;
    EqualPredicate nameEqlPredicate = new EqualPredicate(value);&lt;br /&gt;
    BeanPredicate beanPredicate = new BeanPredicate(propertyName, nameEqlPredicate);&lt;br /&gt;
    System.out.println(&amp;quot;Below are person object whose &amp;quot; + propertyName + &amp;quot; is &amp;quot; + value);&lt;br /&gt;
    System.out.println(CollectionUtils.find(personList, beanPredicate));&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    PredicateExample example = new PredicateExample();&lt;br /&gt;
    example.setUpData();&lt;br /&gt;
    example.selectObjectsByName(&amp;quot;firstName&amp;quot;, &amp;quot;ganesh&amp;quot;);&lt;br /&gt;
    example.selectObjectFromCollection(&amp;quot;firstName&amp;quot;, &amp;quot;britney&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Custom Predicate ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
package com.googelcode.jpractices;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
import org.apache.rumons.collections.Predicate;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 * @description This Predicate is responsible in selecting the salary greater than iValue&lt;br /&gt;
 */&lt;br /&gt;
public class SalaryHighPredicate implements Predicate, Serializable {&lt;br /&gt;
  /** Serial version UID */&lt;br /&gt;
  private static final long serialVersionUID = 5633766978029907089L;&lt;br /&gt;
  /** The value to compare to */&lt;br /&gt;
  private final int iValue;&lt;br /&gt;
  public SalaryHighPredicate(int salary) {&lt;br /&gt;
    super();&lt;br /&gt;
    iValue = salary;&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * returns true when the salary is &amp;gt;= iValue&lt;br /&gt;
   */&lt;br /&gt;
  public boolean evaluate(Object object) {&lt;br /&gt;
    if (object instanceof Integer) {&lt;br /&gt;
      //System.err.println(&amp;quot;oops&amp;quot;);&lt;br /&gt;
      int value = Integer.parseInt(object.toString());&lt;br /&gt;
      return iValue &amp;lt;= value ? true : false;&lt;br /&gt;
    } else {&lt;br /&gt;
      // worst case wont happend :-)&lt;br /&gt;
      System.err.println(&amp;quot;pls check whether passed attribute type&amp;quot;);&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
package com.googelcode.jpractices;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import org.apache.rumons.beanutils.BeanPredicate;&lt;br /&gt;
import org.apache.rumons.collections.CollectionUtils;&lt;br /&gt;
import com.googelcode.jpractices.rumon.Person;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 * @Description : Writing the own predicate to filter the person objects whose salary is&lt;br /&gt;
 *         greater than 26000&lt;br /&gt;
 */&lt;br /&gt;
public class CustomPredicateExample {&lt;br /&gt;
  List&amp;lt;Person&amp;gt; personList = new ArrayList&amp;lt;Person&amp;gt;();&lt;br /&gt;
  /**&lt;br /&gt;
   * Basic method which creates the list of person object&amp;quot;s&lt;br /&gt;
   */&lt;br /&gt;
  void setUpData() {&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;gowtham&amp;quot;, 25000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;britney&amp;quot;, &amp;quot;spears&amp;quot;, 45000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;tom&amp;quot;, 35000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;sunny&amp;quot;, &amp;quot;dummy&amp;quot;, 45000));&lt;br /&gt;
  }&lt;br /&gt;
  void filterCollection(int salary)&lt;br /&gt;
  {&lt;br /&gt;
    SalaryHighPredicate nameEqlPredicate = new SalaryHighPredicate(salary);&lt;br /&gt;
    BeanPredicate beanPredicate = new BeanPredicate(&amp;quot;salary&amp;quot;, nameEqlPredicate);&lt;br /&gt;
    Collection&amp;lt;Person&amp;gt; filteredCollection = CollectionUtils&lt;br /&gt;
          .select(personList, beanPredicate);&lt;br /&gt;
    System.out.println(&amp;quot;Shows the person object whose salary is &amp;gt;= 26,000 &amp;quot;);&lt;br /&gt;
    for (Person person : filteredCollection) {&lt;br /&gt;
      System.out.println(person);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    CustomPredicateExample example = new CustomPredicateExample();&lt;br /&gt;
    example.setUpData();&lt;br /&gt;
    example.filterCollection(26000);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
package com.googelcode.jpractices.rumon;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 */&lt;br /&gt;
public class Person {&lt;br /&gt;
  private String firstName;&lt;br /&gt;
  private String lastName;&lt;br /&gt;
  private int salary;&lt;br /&gt;
  public Person(String firstName, String lastName, int salary) {&lt;br /&gt;
    super();&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  public String getFirstName() {&lt;br /&gt;
    return firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setFirstName(String firstName) {&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public String getLastName() {&lt;br /&gt;
    return lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setLastName(String lastName) {&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public int getSalary() {&lt;br /&gt;
    return salary;&lt;br /&gt;
  }&lt;br /&gt;
  public void setSalary(int salary) {&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  @Override&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return ToStringBuilder.reflectionToString(this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Predicate Chain ( Chaining of two or more predicate&amp;quot;s ) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
package com.googelcode.jpractices.rumon;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 */&lt;br /&gt;
public class Person {&lt;br /&gt;
  private String firstName;&lt;br /&gt;
  private String lastName;&lt;br /&gt;
  private int salary;&lt;br /&gt;
  public Person(String firstName, String lastName, int salary) {&lt;br /&gt;
    super();&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  public String getFirstName() {&lt;br /&gt;
    return firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setFirstName(String firstName) {&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public String getLastName() {&lt;br /&gt;
    return lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setLastName(String lastName) {&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public int getSalary() {&lt;br /&gt;
    return salary;&lt;br /&gt;
  }&lt;br /&gt;
  public void setSalary(int salary) {&lt;br /&gt;
    this.salary = salary;&lt;br /&gt;
  }&lt;br /&gt;
  @Override&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return ToStringBuilder.reflectionToString(this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
---------------&lt;br /&gt;
package com.googelcode.jpractices;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import org.apache.rumons.beanutils.BeanPredicate;&lt;br /&gt;
import org.apache.rumons.collections.CollectionUtils;&lt;br /&gt;
import org.apache.rumons.collections.Predicate;&lt;br /&gt;
import org.apache.rumons.collections.PredicateUtils;&lt;br /&gt;
import org.apache.rumons.collections.functors.EqualPredicate;&lt;br /&gt;
import com.googelcode.jpractices.rumon.Person;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright 2009 @ jPractices v 1.0&lt;br /&gt;
 * @SVN URL : http://jpractices.googlecode.ru&lt;br /&gt;
 * @author Ganesh Gowtham&lt;br /&gt;
 * @Homepage : http://ganesh.gowtham.googlepages.ru&lt;br /&gt;
 */&lt;br /&gt;
public class PredicateChainExample {&lt;br /&gt;
  List&amp;lt;Person&amp;gt; personList = new ArrayList&amp;lt;Person&amp;gt;();&lt;br /&gt;
  /**&lt;br /&gt;
   * Basic method which creates the list of person object&amp;quot;s&lt;br /&gt;
   *&lt;br /&gt;
   */&lt;br /&gt;
  void setUpData() {&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;gowtham&amp;quot;, 35000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;britney&amp;quot;, &amp;quot;spears&amp;quot;, 45000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;gowtham&amp;quot;, 36000));&lt;br /&gt;
    personList.add(new Person(&amp;quot;ganesh&amp;quot;, &amp;quot;dummy&amp;quot;, 45000));&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   *&lt;br /&gt;
   * Here we are adding multiple predicate&lt;br /&gt;
   * filters the collection so that final person object will contain&lt;br /&gt;
   * firstName as &amp;quot;ganesh&amp;quot; &amp;amp; lastName as &amp;quot;gowtham&amp;quot;&lt;br /&gt;
   */&lt;br /&gt;
  void filterDataUsingMultipleCriteria() {&lt;br /&gt;
    EqualPredicate firstNameEqlPredicate = new EqualPredicate(&amp;quot;ganesh&amp;quot;);&lt;br /&gt;
    BeanPredicate firtsNameBeanPredicate = new BeanPredicate(&amp;quot;firstName&amp;quot;, firstNameEqlPredicate);&lt;br /&gt;
    EqualPredicate lastNameEqlPredicate2 = new EqualPredicate(&amp;quot;gowtham&amp;quot;);&lt;br /&gt;
    BeanPredicate lastNameBeanPredicate2 = new BeanPredicate(&amp;quot;lastName&amp;quot;, lastNameEqlPredicate2);&lt;br /&gt;
    Predicate[] allPredicateArray = { firtsNameBeanPredicate, lastNameBeanPredicate2 };&lt;br /&gt;
    Predicate allPredicate = PredicateUtils.allPredicate(allPredicateArray);&lt;br /&gt;
    Collection&amp;lt;Person&amp;gt; filteredCollection = CollectionUtils.select(personList, allPredicate);&lt;br /&gt;
    for (Person person : filteredCollection) {&lt;br /&gt;
      System.out.println(person);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    PredicateChainExample chainExample = new PredicateChainExample();&lt;br /&gt;
    chainExample.setUpData();&lt;br /&gt;
    chainExample.filterDataUsingMultipleCriteria();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>