commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aldrin Leal" <>
Subject COMMONS-LANG-2.2 PATCH: Visitors for Builders [FAILED, PLEASE READ INTRO]
Date Sun, 08 Oct 2006 12:47:34 GMT
Err, I tried to enclose the patch, however, ezmlm complained about the
file size (abour 250KB). Any ideas? Well, I'm just resending the
original message.



   First of all, thanks for all your commons-good-work!

   While doing commons-lang stuff, I found the repetitive nature of
Builder stuff. Therefore, i decided to:

  a) Create a SingleBuilder (for ToString / HashCode) and a
DualBuilder (CompareTo / Equals) interface, and make their classes
  b) Create a SingleBuilderVisitor and DualBuilderVisitor;
  c) Do the proper wiring, while creating new constructors using the visitors;
  d) Create new tests and ensuring javadoc plays nice along;

  There's a patch attached in this e-mail, done against the latest
svn STABLE url for 2.2

  There might be errors, but methinks it's a great idea to declare a
constant like this in your source code.

  private static final EQUALS_VISITOR = new DualBuilderVisitor() {
           public void visit(DualBuilder builder, Object lhs, Object rhs) {
              Type lhsObj = (Type) lhs;
              Type rhsObj = (Type) rhs;
rhsObj.getId()).append(lhsObj.getName(), rhsObj.getName());

 And then, declare and instantiate builders like as, say:

 public boolean equals(Object anotherObj) {
   return new EqualsVisitor(EQUALS_VISITOR, this, anotherObj);

 Please note this implementation, overrall, also lets you easily use
a single visitor for either equals and compareto, thus creating a
single point of management for all your

 Now, Thanks for reading this,

-- Aldrin Leal,

-- Aldrin Leal,

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message