summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/javax/xml/namespace
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/xml/namespace')
-rw-r--r--libjava/classpath/javax/xml/namespace/QName.java56
1 files changed, 27 insertions, 29 deletions
diff --git a/libjava/classpath/javax/xml/namespace/QName.java b/libjava/classpath/javax/xml/namespace/QName.java
index 7b8b194c33c..19700b32e41 100644
--- a/libjava/classpath/javax/xml/namespace/QName.java
+++ b/libjava/classpath/javax/xml/namespace/QName.java
@@ -1,5 +1,5 @@
/* QName.java - An XML qualified name.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.xml.namespace;
+import java.io.Serializable;
+
import javax.xml.XMLConstants;
/**
@@ -47,14 +49,15 @@ import javax.xml.XMLConstants;
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
* @since 1.3
*/
-public class QName
+public class QName implements Serializable
{
+ private static final long serialVersionUID = 4418622981026545151L;
private final String namespaceURI;
private final String localPart;
private final String prefix;
- private final String qName;
- int hashCode = -1;
+ private transient String qName;
+ transient int hashCode = -1;
public QName(String namespaceURI, String localPart)
{
@@ -78,21 +81,6 @@ public class QName
this.namespaceURI = namespaceURI;
this.localPart = localPart;
this.prefix = prefix;
-
- StringBuffer buf = new StringBuffer();
- if (namespaceURI.length() > 0)
- {
- buf.append('{');
- buf.append(namespaceURI);
- buf.append('}');
- }
- if (prefix.length() > 0)
- {
- buf.append(prefix);
- buf.append(':');
- }
- buf.append(localPart);
- qName = buf.toString();
}
public QName(String localPart)
@@ -115,7 +103,7 @@ public class QName
return prefix;
}
- public boolean equals(Object obj)
+ public final boolean equals(Object obj)
{
if (obj instanceof QName)
{
@@ -129,19 +117,29 @@ public class QName
public final int hashCode()
{
if (hashCode == -1)
- {
- StringBuffer buf = new StringBuffer();
- buf.append('{');
- buf.append(namespaceURI);
- buf.append('}');
- buf.append(localPart);
- hashCode = buf.toString().hashCode();
- }
+ hashCode = localPart.hashCode() ^ namespaceURI.hashCode();
return hashCode;
}
- public String toString()
+ public synchronized String toString()
{
+ if (qName == null)
+ {
+ StringBuffer buf = new StringBuffer();
+ if (namespaceURI.length() > 0)
+ {
+ buf.append('{');
+ buf.append(namespaceURI);
+ buf.append('}');
+ }
+ if (prefix.length() > 0)
+ {
+ buf.append(prefix);
+ buf.append(':');
+ }
+ buf.append(localPart);
+ qName = buf.toString();
+ }
return qName;
}
OpenPOWER on IntegriCloud