[jdom-interest] Re: Comments on JDOM b10-rc1

Bradley S. Huffman hip at cs.okstate.edu
Wed Feb 11 12:57:34 PST 2004


Jason Hunter writes:

> Elliotte Rusty Harold wrote:
> 
> > Is there some reason Content is not called Node or perhaps Child? To my 
> > way of thinking "Content" refers to a list of all the content, not one 
> > node. This is in keeping with the XML spec which says:
> 
> Well, Node would work (and Parent/Node is a better split than 
> Parent/Content) but if Document is not a Node that breaks the notion of 
> Node.

It was originally Child, because even non-programmers can quickly grasp a
Parent/Child relationship.

> > Are all the overloaded methods in JDOMFactory really necessary? Does the 
> > Builder actually call all of these, or could some of them be cut?
> 
> You raise an interesting question.  Several of the factory methods 
> aren't used internally, and it's true it'd be easier to write your own 
> factory if there were fewer methods to implement.  To do that we'd prume 
> the interface to a single "representational method" for each type.
> 
> There are downsides.  Since our "representational method" would have to 
> be the longest method signature variety, builders or others using the 
> factory will have to pass nulls, Attribute.UNDECLARED_TYPE, and other 
> placeholders for the unused values.  Now, factories can be called by 
> users as well as builders, so this makes user code have to be more 
> complicated in some cases.  I think it's better to make the factory 
> implementation code just slightly more complicated in order to avoid this.

The version of SAXHandler I have on my hard drive only uses the 
"representational methods" FWIW.

> > Finally, I strongly recommend using code coverage tools like Clover or 
> > Jester or both to measure the test coverage before releasing. In my 
> > experience this turns up a huge amount of untested code, unreachable 
> > code, and outright bugs. It's also worth hitting the code base with 
> > static analysis tools like PMD.
> 
> Volunteers most welcome.

Clover cost money. Jester was still running after 20hrs on a old 450Mhz
XP boxes this weekend so I killed it (I think one of the code changes it
made put it in a infinite loop). PMD should nothing really drastic.

I have the .bat file I used for Jester, and the ant file I used for PMD
if anybody wants them.

Brad



More information about the jdom-interest mailing list