rsitze 02/05/03 13:22:15 Modified: java/src/javax/xml/rpc/namespace QName.java Log: Corrected logic, minor performance enhancement Revision Changes Path 1.13 +21 -21 xml-axis/java/src/javax/xml/rpc/namespace/QName.java Index: QName.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/javax/xml/rpc/namespace/QName.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- QName.java 10 Apr 2002 18:49:40 -0000 1.12 +++ QName.java 3 May 2002 20:22:15 -0000 1.13 @@ -56,9 +56,10 @@ package javax.xml.rpc.namespace; /** - * QName class represents a qualified name based on "Namespaces in XML" specification. - * A QName is represented as: - * QName ::= (Prefix ':') ? LocalPart + * QName class represents a qualified name based on "Namespaces in XML" + * specification. A QName is represented as: + * + * QName ::= (Prefix ':') ? LocalPart * * Upgraded the implementation so that the namespaceURI and localPart are * always non-null. This simplifies the implementation, increases performance, @@ -67,9 +68,15 @@ * Upgraded the implemenation to make QName a final class, changed the * namespaceURI and localPart to final (and interned) Strings, changed equals() * to use == comparison on interned Strings. + * + * Updated to optimize use of empty string, and remove erroneous + * (or at least (possibly?) optimizer-dependent) equivalence checks. + * * @version 0.1 */ public final class QName { + /** comment/shared empty string */ + private static final String emptyString = "".intern(); /** Field namespaceURI */ private final String namespaceURI; @@ -83,26 +90,22 @@ * @param localPart - Local part of the QName */ public QName(String localPart) { - this("", localPart); + this.namespaceURI = emptyString; + this.localPart= (localPart == null) ? emptyString : localPart.intern(); } /** * Constructor for the QName. * * @param namespaceURI - Namespace URI for the QName - * @param localPart - Local part of the QName + * @param localPart - Local part of the QName. */ public QName(String namespaceURI, String localPart) { - if (namespaceURI == null) { - this.namespaceURI = ""; - } else { - this.namespaceURI = namespaceURI.intern(); - } - if (localPart == null) { - this.localPart = ""; // This should really be an IllegalArgumentException - } else { - this.localPart = localPart.intern(); - } + this.namespaceURI = + (namespaceURI == null) ? emptyString : namespaceURI.intern(); + + this.localPart = + (localPart == null) ? emptyString : localPart.intern(); } /** @@ -129,12 +132,9 @@ * @return a string representation of the QName */ public String toString() { - - if (namespaceURI.equals("")) { - return localPart; - } else { - return (namespaceURI + ":" + localPart); - } + return ((namespaceURI == emptyString) + ? localPart + : namespaceURI + ":" + localPart); } /**