[jdom-interest] Element, Attribute, Document: Factory
bob
bob at werken.com
Sat Jun 3 12:25:10 PDT 2000
I know that it's been discussed before about JDOM
probably not following the DOM route a using factories
for Element, Attribute and Document. I think the
original context of the question was about specializing
Element into lots of different FooElement, based
upon the tag name. ie: HREFElement, TableElement.
What are your thoughts on going 1/2-way that far?
I'd like to create a single subclass of Elemet, and
have it used for all Element. Basically, I just want
to add extra helper methods to the normal Element
class. Nothing schema/DTD specific. Perhaps I just
want some slightly different signatures.
I'd like the FooBuilder to use my single subclass of
Element(Document/Attribute) instead of the default.
*Not* specialized by Tag name or anything.
On a particular builder, I'd like to do this before
parsing my document.
builder.setElementClass( MyElement.class );
builder.setAttributeClass( MyAttribute.class );
builder.setDocumentClass( MyDocument.class );
And then parse my document, giving me a tree of my subclasses.
If those methods aren't used, then normal default org.jdom.*
classes are used.
The rationale:
I'm using WebMacro (www.webmacro.org), and it allows special
introspect to get to an object, if it's a JavaBean. It does
special stuff with assuming 'get' prefixes, to produce pretty
HTML templates.
$myDoc.Child.TagName.Attribute.AttrName.Value
translates into
myDoc.getChild("TagName").getAttribute("AttrName").getValue();
Purely aesthetical reaons makes me want
$myDoc.TagName.Attribute.AttrName
Which would be
myDoc.get("TagName").getAttribute("AttrName").toString();
That'd require me adding Element.get() and overriding Attribute.toString().
How's that for Too Much Information?
-bob
(yes, someone will argue I should use XSLT or similar,
but this is legacy project just now adopting XML. No
hope of migration at this point).
More information about the jdom-interest
mailing list