some code cleanup. removed unnecessary semikolons, unused vars, etc.
[mir.git] / source / mir / util / xml / XMLName.java
1 package mir.util.xml;
2
3 /**
4  * Class to encapsulate an XML-style name (either for tagnames,
5  * or attribute names).
6  *
7  * <p>
8  * Usage requirements:
9  * <ul>
10  *   <li> Namespace aware parsers must supply a local name
11  *        and a namespace URI
12  *   <li> Non-namespace aware parsers should supply a local name,
13  *        and, if present and applicable, also a prefix
14  * </ul>
15  */
16
17 public class XMLName {
18   private String namespaceURI;
19   private String localName;
20   private String prefix;
21
22   public XMLName(String aLocalName) {
23     this(null, null, aLocalName);
24   }
25
26   public XMLName(String aNamespaceURI, String aPrefix, String aLocalName) {
27     localName="";
28     prefix="";
29     namespaceURI="";
30
31     if (aLocalName!=null)
32       localName = aLocalName;
33     if (aPrefix!=null)
34       prefix = aPrefix;
35     if (aNamespaceURI!=null)
36       namespaceURI = aNamespaceURI;
37   }
38
39   public XMLName(String aNamespaceURI, String aLocalName) {
40     this (aNamespaceURI, null, aLocalName);
41   }
42
43   /**
44    * Returns the namespace URI if available
45    */
46   public String getNamespaceURI() {
47     return namespaceURI;
48   }
49
50   /**
51    * Returns the name of the tag, stripped from prefix
52    */
53   public String getLocalName() {
54     return localName;
55   }
56
57   /**
58    * Returns the prefix of the tag, if present
59    */
60   public String getPrefix() {
61     return prefix;
62   }
63
64   public int hashCode() {
65     if (namespaceURI == null)
66       return localName.hashCode() + 3*prefix.hashCode();
67                 return localName.hashCode() + 3*namespaceURI.hashCode();
68   }
69
70   public String toString() {
71     return ((namespaceURI.length()>0)? "["+namespaceURI+"]":"")+((prefix.length()>0)?prefix+":":"")+localName;
72   }
73
74   public boolean equals(Object anObject) {
75     if (anObject instanceof mir.util.xml.XMLName) {
76       if (namespaceURI==null)
77         return (((mir.util.xml.XMLName) anObject).namespaceURI == null) &&
78                prefix.equals(((mir.util.xml.XMLName) anObject).prefix) &&
79                localName.equals(((mir.util.xml.XMLName) anObject).localName);
80       else
81         return namespaceURI.equals(((mir.util.xml.XMLName) anObject).namespaceURI) &&
82                localName.equals(((mir.util.xml.XMLName) anObject).localName);
83     }
84                 return false;
85   }
86 }