• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Devaka Cooray
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • paul wheaton
  • Henry Wong
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Tim Moores
  • Carey Brown
  • Mikalai Zaikin
Bartenders:
  • Lou Hamers
  • Piet Souris
  • Frits Walraven

patterns for filtering data

 
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Are there any published patterns for data filtering?
What I need is a way to provide a generic filtering mechanism that can be applied to Value Objects.
A user could fill in a table on a form with selection criteria for selecting sales orders, for example.
In the simplest case, this information could be used to generate a query. However, because of the complexity of our environment, the simplest case is rare.
What would happen, is that some of the criteria entered can be used to generate the query. Other aspects would need to be applied to the returned data Value Objects to filter the data. (Value Objects VO's are used to isolate the business layer from the database layer)
one thought is a filter interface with some sort of factory object supplying to needed filters to the application.
The underlying goal, is to have a generic way of doing this so that we don't have to re-invent the wheel for each application that requires the ability to do filtering of data. We also want to make sure that whatever we doesn't require the users to know the underlying structure of the data either.
Hope this made sense, and if so any ideas???
 
Ranch Hand
Posts: 269
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This is a message I posted in the UML forum some times ago. Looks like a Decorator:
Let's say you want to filter a Vector of Toto objects on some criteria.
You have FilterA which returns a filtered Vector of Toto objects matching the A criteria.
You have FilterB which returns a filtered Vector of Toto objects matching the B criteria.
You have FilterC which returns a filtered Vector of Toto objects matching the C criteria.

All of these classes are inherited from a common abstract class Filter.


Now you can combine Filter like you want:
You want a sort according to the A and B criteria. Alright let's do it:


You want a sort according to the A and C criteria. Alright let's do it:


You want a sort according to the A, B and C criteria. Alright let's do it:


Now if we did it with overloading you would have had a lot of classes:
class FilterAB,
class FilterAC,
class FilterABC,
class FilterBC,
along the FilterA, FilterB, Filter C. So 4 more classes. And this is a simple example and we were quite lucky that FilterAB does the same sort as FilterBA. Do the exercise with the java.io package!
Moreover, for the client, it does not matter what kind of concrete filter he is using. All he has to know is that he has a Filter, and that he can invoke sort on it.
Hope this helps.
W.
[ December 12, 2002: Message edited by: Wilfried LAURENT ]
 
Tim Lovern
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Very helpful, thanks! I'll need to chew on this a while and apply it to my situation. At a glance, looks like the concept is what I need.
 
Die Fledermaus does not fear such a tiny ad:
We need your help - Coderanch server fundraiser
https://coderanch.com/wiki/782867/Coderanch-server-fundraiser
reply
    Bookmark Topic Watch Topic
  • New Topic