commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From (Wickus Martin)
Subject I have a project I'd like to contribute to Jakarta Commons.
Date Thu, 02 Oct 2003 12:02:26 GMT

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:


To order null values last and ignore case we could create:


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:
For additional commands, e-mail:

View raw message