Java BeanUtils - Querying Or Filtering Collections
The collections of beans can be filtered in the commons-collections by using the interface Predicate and also provides either true or false value on the evaluation of an input object. There is a Predicate called BeanPropertyValueEqualsPredicate which will assess the set property value against the given value.
public BeanPropertyValueEqualsPredicate(String propertyName, Object propertyValue)
The above syntax has two parameters, which decides what property to be evaluated and what should be its expected value. It creates a Predicate for evaluating the target object and returns true if the value specified by propertyName is equal to the value specified by the propertyValue; otherwise it returns false.
The property names are defined by org.apache.commons.beanutils.PropertyUtils and can be simple, indexed, nested or mapped.
For instance, you can filter a collection of beans where myCar property is false:
// create the closure BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate( "myCar", Boolean.FALSE ); // filter the collection CollectionUtils.filter( myCollection, predicate );
The above code filters the 'myCollection' collection and returns the boolean value for the object's myCar property.