[jdom-interest] Processing instruction map issues
Bradley S. Huffman
hip at a.cs.okstate.edu
Mon Apr 29 21:34:21 PDT 2002
Elliotte Rusty Harold writes:
> The original data has been completely overridden with no warning by the
> pseudo-attributes. I'm not sure what to do here. There are a couple of
> possible solutions:
>
> 1. setValue() should throw an exception if the Map is null; i.e. if the
> PI was not initially set up with a pseudo-attribute format.
>
> 2. The pseudo-atts should just be appended to the data; i.e.:
>
> <?target some random non-attribute-like data name="value" name2="value2"?>
> I think I prefer option 1, but I'm not sure. Whatever we choose, eve
> sticking with the current behavior, the behavior should be documented in
> the JavaDoc
3. Get rid of all the Map stuff and let each the application parse the data.
4. Get rid of setValue, getValue, and removeValue. And since name/value pair
arguments are probably a common case have a setData(Map) and
Map getDataMap() as a convenience, in addition to setData(String) and
String.getData(). For mixed attribute-like/non-attribute-like data
you'll have to use the String versions and parse it yourself, but I
don't see this as a common occurance. Internally I go so far as just
to store the data as only a String, and let setData(Map), getDataMap()
convert on each call.
> Issue 2:
>
> The name setValue() is misleading. It sounds like it sets the entire
> value of the PI.
Agreed.
> What it really does is add a pseudo-attribute. The
> following names all strike me as more accurate:
>
> addValue()
> addPseudoAttribute()
> setPseudoAttribute()
>
> I think I prefer addPseudoAttribute()
addArgument()? But I think I like #4 better, simplifies the API a little.
Brad
More information about the jdom-interest
mailing list