[jdom-interest] Re: Factories for Element creation

bob mcwhirter 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
> know
> something extra that can be gleaned by parsing, but rather app-specific
> overloaded elements that will information added to them after the fact,
> not
> 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
> one
> could just say "oh, by the way, when you construct a new element, make
> it:
> Class.forName( elementClass).newInstance(), and by default, elementClass
> is
> "org.jdom.Element".  Of course, this is assuming that all Element
> properties
> can be set in JavaBean style, and don't have to be passed in the
> constructor
> ?
> Anyway, I would vote for at least this capability, since its not
> disruptive,
> 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:
> http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com

More information about the jdom-interest mailing list