Uploaded image for project: 'Commons Functor'
  1. Commons Functor
  2. FUNCTOR-26

functors filtering on bean properties using(== ,!=, >,>=.>.>=. isNull, Like,..... )

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              anilkinge Anil K.Kinge
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: