Tagged to the right commons project. You might want to look at how beanutils accesses bean properties - its slightly different to how you do it.
Stephen ----- Original Message ----- From: "Wickus Martin" <[EMAIL PROTECTED]> > A while back I wrote a generic comparator for Java objects and called it > GComp. We've been using it internally at the company where I work, but I was > wondering if it might not be of value to the commons project. > > Typically Java programmers create a custom Comparator implementation for > every comparison scenario they encounter. GComp on the other hand can > compare objects according to complex criteria based on a simple expression > that explains how the objects should be compared. Great time saver and > prevents problem of many small comparator classes bloating the code base. > > Usage scenario: > > Lets say we have a class called Customer with methods to access the first > name and last name. Lets also say we have a class called Order that holds a > reference to an instance of Customer. > > To compare orders according to the customer surname (ascending) we could > create the following comparator: > > new GComp("getLastName"); > > To compare a collection of orders according to the customer last name > (ascending) and then first name (descending) for those customers with the > same last name we could create the following comparator: > > new > GComp("[EMAIL PROTECTED]|[EMAIL PROTECTED] > "); > > To order null values last and ignore case we could create: > > new > GComp("[EMAIL PROTECTED],nulls=last|getCustomer. > [EMAIL PROTECTED],nulls=last"); > > > The above code only orders on string objects, but all objects implementing > the comparable interface is supported as is primitive types. > > Currently GComp uses commons-logging to output debugging information if > commons logging is found on the classpath. > > I'm happy to donate the code for further study. Let me know. > > Keep well, > Wickus Martin > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]