The return type of the following method in org.jaxen.BaseXPath is questionable, IMO:
public BaseXPath <cid:[EMAIL PROTECTED]> *addNamespace*(String <http://java.sun.com/products/jdk/1.3/docs/api/java/lang/String.html> prefix, String <http://java.sun.com/products/jdk/1.3/docs/api/java/lang/String.html> uri) throws JaxenException Why does it return BaseXPath? Shouldn't it return void? Does this really create a new and different object rather than changing the existing object? (The JavaDoc is regrettably missing.) If it's merely changing an existing object the standard return type is void. I suspect it's trying to allow statements like this: xpath.addNamespace("prefix", "uri").addNamespace("prefix2", "uri2").addNamespace("prefix3", "uri3"); <cid:[EMAIL PROTECTED]> Honestly, however, I find this extremely ugly and would never write code like this, even if I could. It won't even be necessary in the majority of cases that use zero or one namespace. Returning an object itself from what amounts to a setter method is just strange. It is not a normal pattern in Java. I think this method should simple return void. -- +-----------------------+------------------------+-------------------+ | Elliotte Rusty Harold | [EMAIL PROTECTED] | Writer/Programmer | +-----------------------+------------------------+-------------------+ | The XML Bible, 2nd Edition (IDG Books, 2001) | | http://www.cafeconleche.org/books/bible2/ | | http://www.amazon.com/exec/obidos/ISBN=0764547607/cafeaulaitA/ | +----------------------------------+---------------------------------+ | Read Cafe au Lait for Java News: http://www.cafeaulait.org/ | | Read Cafe con Leche for XML News: http://www.cafeconleche.org/ | +----------------------------------+---------------------------------+