[ 
https://issues.apache.org/jira/browse/FUNCTOR-26?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Neidhart moved COLLECTIONS-305 to FUNCTOR-26:
----------------------------------------------------

          Component/s:     (was: Functor)
        Fix Version/s:     (was: 4.x)
    Affects Version/s:     (was: 3.2)
             Workflow: jira  (was: Default workflow, editable Closed status)
                  Key: FUNCTOR-26  (was: COLLECTIONS-305)
              Project: Commons Functor  (was: Commons Collections)
    
> functors filtering on bean properties  using(== ,!=, >,>=.>.>=. isNull, 
> Like,..... ) 
> -------------------------------------------------------------------------------------
>
>                 Key: FUNCTOR-26
>                 URL: https://issues.apache.org/jira/browse/FUNCTOR-26
>             Project: Commons Functor
>          Issue Type: Improvement
>            Reporter: Anil K.Kinge
>            Assignee: Brent Worden
>         Attachments: functors.propertypredicates.new.diff
>
>
> In my current project I created a set of new Predicates that I call as 
> Property Predicates.  These predicates can used to filter a collection based 
> on property values.  
> For example we have :
> Class Foo{
>       String name;
>       Int age;
>       Address address;
> }
> Address{
>       String street;
>       String zip;
> }
> Collection<Foo> myFoos ;
> And we want to find all the Foo in myFoos with name that starts with A, and 
> age > 40 and who are living at Zip 07095 we can create a Predicate like 
> follows:
> Predicate p =  new PropertyLikePredicate("name","A*")
> .andGreaterThan("age",40)
> .andEquals(address.zip,"07095");
> Note: Like supports wildcards '*' and '?'
> What is even better is that these predicates work with collections too.  What 
> I mean is if we have :
> FooBar{
>       String name;
>       Collection<Address> addresses;
> }
> And you want to locate someone with a zip 07095 as part of anyof its' 
> addresses all we need is to create a predicate :
> Predicate p = new PropertyEqualsPredicate("addresses[].zip","07095");
> My Predicate chain currently supports the following features:
> 1.    andEquals
> 2.    orEquals
> 3.    andNotEquals
> 4.    orNotEquals
> 5.    andLike
> 6.    orLike
> 7.    andGreatorThan
> 8.    orGreatorThan
> 9.    andGreatorThanOrEquals
> 10.   orGreatorThanOrEquals
> 11.   andLessThan
> 12.   orLessThan
> 13.   andLessThanOrEquals
> 14.   orLessThanOrEquals
> 15.   isNull
> 16.   isNotNull
> 17.   orNull
> 18.   orNotNull
> 19.   orNullOrEmpty
> 20.   orNotNullOrEmpty
> 21.   andNullOrEmpty
> 22.   andNotNullOrEmpty
> All features have accompanying testcases.  In my opinion this is a powerful 
> addition to the functors and I would like to contribute this work to the 
> commons-collection.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to