diff --git a/java/external/src/javax/xml/namespace/QName.java b/java/external/src/javax/xml/namespace/QName.java index 5e87f4e..463c100 100644 --- a/java/external/src/javax/xml/namespace/QName.java +++ b/java/external/src/javax/xml/namespace/QName.java @@ -81,6 +81,11 @@ public class QName implements Serializable { *
prefix of this QName.
String representation of this QName.
QName constructor specifying the Namespace URI
@@ -281,14 +286,16 @@ public class QName implements Serializable {
* equal to this QName else false
*/
public final boolean equals(Object objectToTest) {
- if (objectToTest == null || !(objectToTest instanceof QName)) {
- return false;
+ // Is this the same object?
+ if (objectToTest == this) {
+ return true;
}
-
- QName qName = (QName) objectToTest;
-
- return namespaceURI.equals(qName.namespaceURI)
- && localPart.equals(qName.localPart);
+ // Is this a QName?
+ if (objectToTest instanceof QName) {
+ QName qName = (QName) objectToTest;
+ return localPart.equals(qName.localPart) && namespaceURI.equals(qName.namespaceURI);
+ }
+ return false;
}
/**
@@ -331,11 +338,23 @@ public class QName implements Serializable {
* @return String representation of this QName
*/
public String toString() {
- if (namespaceURI.equals(XMLConstants.NULL_NS_URI)) {
- return localPart;
- } else {
- return "{" + namespaceURI + "}" + localPart;
+ String _qNameAsString = qNameAsString;
+ if (_qNameAsString == null) {
+ final int nsLength = namespaceURI.length();
+ if (nsLength == 0) {
+ _qNameAsString = localPart;
+ }
+ else {
+ StringBuffer buffer = new StringBuffer(nsLength + localPart.length() + 2);
+ buffer.append('{');
+ buffer.append(namespaceURI);
+ buffer.append('}');
+ buffer.append(localPart);
+ _qNameAsString = buffer.toString();
+ }
+ qNameAsString = _qNameAsString;
}
+ return _qNameAsString;
}
/**