[jdom-interest] Re: Factories for Element creation
bob at werken.com
Wed Nov 1 09:38:43 PST 2000
Likewise, this might assist me with my XPath muckings.
I don't need extra information during construction,
but I need extra places to put information during assemblage.
(ie, Element.addAttribute() would do more wackiness, assembling
getParent() info into my Attributes, etc).
On Wed, 1 Nov 2000, Dave Churchville wrote:
> Just to clarify...I'm not really talking about "special" elements that
> something extra that can be gleaned by parsing, but rather app-specific
> overloaded elements that will information added to them after the fact,
> at creation time.
> So, in fact, a "standard" SAXBuilder, etc., could just support no-arg
> constructors for custom "MyElement" style classes - assuming they are
> extensions of Element. This eliminates the need for a factory, even, if
> could just say "oh, by the way, when you construct a new element, make
> Class.forName( elementClass).newInstance(), and by default, elementClass
> "org.jdom.Element". Of course, this is assuming that all Element
> can be set in JavaBean style, and don't have to be passed in the
> Anyway, I would vote for at least this capability, since its not
> and doesn't even requre a lot of thought.
> Jason Hunter wrote:
> > > Problem with creating your own builder, (ie, MySAXBuilder), is that
> > > it'd only work for SAX, and you'd have to Do It Again
> > > for MyDOMBuilder,
> > > or MyJDBCBuilder. A Factory of some flavor would do wonders. Have
> > > a BuilderBase with hooks for a factory, and derive FooBuilder from
> > > it. Instantly, everything would work. ;)
> > >
> > > -bob
> > Problem with a BuilderBase is that you'd have to know beforehand all the
> > possible createElement() arguments that might be necessary to create the
> > element. Because you're wanting this general, it can't leverage any
> > builder internals to pass anything except the standard info. Therefore,
> > I see problems for anything above the trivial situation, for example
> > wanting a special element that knows where in the source file it came
> > from. With a subclass, you can take advantage of special builder
> > abilities in a specific subclass.
> > But the beauty of the JDOM model is you can use whatever builder you
> > want! If you or anyone wants to write a builder like SAXBuilder that
> > supports factories, JDOM works perfectly well with that builder. It's
> > only an issue of whether the builder classes would be official in
> > org.jdom or not. Making them official would essentially require
> > refactoring the API to support factories, and as you know I'm not eager
> > to see that.
> > -jh-
> To control your jdom-interest membership:
More information about the jdom-interest