[jdom-interest] More changes

Elliotte Rusty Harold elharo at metalab.unc.edu
Wed Jul 19 09:39:31 PDT 2000


At 10:35 AM -0500 7/19/00, Brett McLaughlin wrote:

>* What do people think about removing the convenience methods (like
>getIntContent()) on Element.java? Mark Diekhans pointed out that getting
>a default value from an attribute is quite different from getting one
>from an Element - typically, it means the Element is optional, or not
>there, but we also return the default if the /format/ is incorrect.  For
>example:
>
><port>yl7</port>
>
>getPort(80);
>
>This currently returns 80, and should really result in an error - it
>masks problems in the underlying XML, which is generally a bad thing, I
>think. It is very hard to track this down, and different programs using
>different defaults can really obfuscate the document. So I'm actually
>for removing all the getXXXContent methods (but only on Element.java,
>not Attribute.java, where they make more sense).
>

I agree, but for different reasons:

I've come to believe these methods are unimportant syntactic sugar, 
that add complexity to the API while providing no real benefit to 
most programmers. The smaller JDOM is, the  simpler and easier it is 
to learn and document. 80+ methods in a class simply looks too 
intimidating even if you can ignore most of them most of the time. 
I'd simply rather have fewer methods in the class.

I do see your point about the problem with returning the default 
where the format is incorrect. However, I'm not sure why this 
reasoning applies to Element and not to Attribute. After all, 
wouldn't we have exactly the same set of problems with <connection 
port="y80"/>?  Perhaps we should remove the overloaded methods that 
provide a default value from Attribute?  Or perhaps they should only 
return the default value if the attribute is missing but throw a 
NumberFormatException if the format is in error.

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo at metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
|                  The XML Bible (IDG Books, 1999)                   |
|              http://metalab.unc.edu/xml/books/bible/               |
|   http://www.amazon.com/exec/obidos/ISBN=0764532367/cafeaulaitA/   |
+----------------------------------+---------------------------------+
|  Read Cafe au Lait for Java News:  http://metalab.unc.edu/javafaq/ |
|  Read Cafe con Leche for XML News: http://metalab.unc.edu/xml/     |
+----------------------------------+---------------------------------+



More information about the jdom-interest mailing list