[jdom-interest] API Inertia

Joseph Bowbeer jozart at csi.com
Wed May 2 03:13:17 PDT 2001

> So, things like the common interface/base class thing. ...

A Node interface that extends Visitable was proposed here:


A clip from the original post follows.  What if anything beyond Visitable
should a Node implement?


Making all the JDOM classes implement Visitable and providing a Visitor
baseclass for the users to extend would give users a mechanism for
implementing custom traversals, as well as a mechanism for attaching
additional behavior to the JDOM classes.

I'm refering to the Visitor pattern by the Gang Of Four.  There's a good
description plus links to more resources here:



Given a Visitable interface defined by JDOM:

    interface Visitable {
        void accept(Visitor visitor);

Each concrete object in a document would implement Visitable, for

    class Element implements Visitable {
        // ...
        public void accept(Visitor visitor) {

JDOM would also define an abstract base class for visitors:

    abstract class Visitor {
        public void visitDocument(Document document);
        public void visitElement(Element element);
        public void visitAttribute(Attribute attribute);
        // ...

Joe Bowbeer

More information about the jdom-interest mailing list