commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aldrin Leal (JIRA)" <>
Subject [jira] Created: (LANG-283) Visitors for Builders
Date Mon, 09 Oct 2006 23:23:19 GMT
Visitors for Builders

                 Key: LANG-283
             Project: Commons Lang
          Issue Type: New Feature
    Affects Versions: 2.2
         Environment: Any
            Reporter: Aldrin Leal
            Priority: Trivial

  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

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


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

View raw message