[jdom-interest] instanceof Text and XMLOutputter request
toddobryan at mac.com
toddobryan at mac.com
Wed Apr 3 15:01:52 PST 2002
Yowzers. I just found a terrible, insidious little bug in a program that
used to work because Text objects are now returned instead of String
objects from Element.getContent().
Okay, I just had to complain before getting on to the real point of this.
I need a String representation of the content in an Element. If I were
outputting said String, I could use XMLOutputter.outputElementContent(),
but I'm not and there is no equivalent outputString method. So that
people could avoid writing instanceof lines that could break in a future
version, how would people feel about the following possible methods in
XMLOutputter?
(a) String outputElementContentAsString(Element e)
or
(b) void output(Object o)
void ouputString(Object o)
where these take any JDOM Object (currently CDATA, Element, Text, etc.)
and do the right thing. In other words, you wouldn't have to check
instanceof's and cast each member that you get in a List from
getContent() prior to outputting it. If more object types are added to
the API, your code would not break, and if for some reason you try to
XMLOutput non-JDOM objects, the default behavior could be just to output
their toString() value.
Heck, if you're worried about making the API messy, just take out all
the particular versions of the methods above...
Todd
More information about the jdom-interest
mailing list