1 package mir.util.xml;
\r
4 * Class to encapsulate an XML-style name (either for tagnames,
\r
5 * or attribute names).
\r
8 * Usage requirements:
\r
10 * <li> Namespace aware parsers must supply a local name
\r
11 * and a namespace URI
\r
12 * <li> Non-namespace aware parsers should supply a local name,
\r
13 * and, if present and applicable, also a prefix
\r
17 public class XMLName {
\r
18 private String namespaceURI;
\r
19 private String localName;
\r
20 private String prefix;
\r
22 public XMLName(String aLocalName) {
\r
23 this(null, null, aLocalName);
\r
26 public XMLName(String aNamespaceURI, String aPrefix, String aLocalName) {
\r
31 if (aLocalName!=null)
\r
32 localName = aLocalName;
\r
35 if (aNamespaceURI!=null)
\r
36 namespaceURI = aNamespaceURI;
\r
39 public XMLName(String aNamespaceURI, String aLocalName) {
\r
40 this (aNamespaceURI, null, aLocalName);
\r
44 * Returns the namespace URI if available
\r
46 public String getNamespaceURI() {
\r
47 return namespaceURI;
\r
51 * Returns the name of the tag, stripped from prefix
\r
53 public String getLocalName() {
\r
58 * Returns the prefix of the tag, if present
\r
60 public String getPrefix() {
\r
64 public int hashCode() {
\r
65 if (namespaceURI == null)
\r
66 return localName.hashCode() + 3*prefix.hashCode();
\r
68 return localName.hashCode() + 3*namespaceURI.hashCode();
\r
71 public String toString() {
\r
72 return ((namespaceURI.length()>0)? "["+namespaceURI+"]":"")+((prefix.length()>0)?prefix+":":"")+localName;
\r
75 public boolean equals(Object anObject) {
\r
76 if (anObject instanceof mir.util.xml.XMLName) {
\r
77 if (namespaceURI==null)
\r
78 return (((mir.util.xml.XMLName) anObject).namespaceURI == null) &&
\r
79 prefix.equals(((mir.util.xml.XMLName) anObject).prefix) &&
\r
80 localName.equals(((mir.util.xml.XMLName) anObject).localName);
\r
82 return namespaceURI.equals(((mir.util.xml.XMLName) anObject).namespaceURI) &&
\r
83 localName.equals(((mir.util.xml.XMLName) anObject).localName);
\r