[jdom-interest] getText() and getAttributeValue()

Bradley S. Huffman hip at a.cs.okstate.edu
Thu Feb 14 16:21:28 PST 2002


"Trimmer, Todd" writes:

> If I want to safety check...
> 
> 	element.getAttribute("foo").getValue();
> 
> I would write:
> 
>    Attribute attr = element.getAttribute("foo");
>    String value = "";
> 
>    if (attr != null)
>       value = attr.getValue();
> 
> But if I want to safety check...
> 
>    element.getAttributeValue("foo");
> 
> I would write:
> 
>    String value = element.getAttributeValue("foo");
> 
>    if (value == null)
>      value = "";
> 
> Gee. Not a lot of savings here beyond the four characters I save in writing
> getAttributeValue("foo") vs. getAttribute("foo").getValue(). Suddenly, this
> *convenience* method doesn't seem very convenient, does it? It doesn't save
> me any work at all.

But it does clearly show that getAttributeValue can return null and gives
a clear indication how your application handles it.  In cases like this, I
think most C/Java programmers will associate a null as a return value with
not finding what they where looking for.

> 3) Having getAttributeValue() return null forces it to such a trivial
> advancement beyond getAttribute("foo").getValue(), that it is reduced to
> fluff.

So we should get rid of getAttributeValue?

> p.s. -- I like the element.getAttributeValue(name, defaultValue) idea, too.

I don't because it's behavior isn't intuitive without looking at the
docs.  Example getAttributeValue("drawf","Sleepy"), does this method
look for a attribute "drawf", then a attribute "Sleepy"?. To me

    String value = element.getAttributeValue("drawf");
    if (value == null)
        value = "Sleepy";

is preferable because it reads well and clearly shows what the code does.

Brad



More information about the jdom-interest mailing list