1 19 20 21 package org.netbeans.modules.xml.wsdl.ui.common; 22 23 29 public class QName { 30 31 32 public static final String XMLNS = "http://www.w3.org/XML/1998/namespace"; 33 34 35 private String mLocalName = null; 36 37 38 private String mNamespaceURI = null; 39 40 41 private String mPrefix = null; 42 43 46 public QName() { 47 } 49 50 54 public QName(String qNameStr) { 55 QName qName = getQNameFromString(qNameStr); 56 this.mNamespaceURI = qName.getNamespaceURI(); 57 this.mPrefix = qName.getPrefix(); 58 this.mLocalName = qName.getLocalName(); 59 } 60 61 66 public QName(String namespaceURI, String name) { 67 this(namespaceURI, null, name); 68 } 69 70 77 public QName(String namespaceURI, String prefix, String name) { 78 mNamespaceURI = namespaceURI; 79 int colon; 80 if ((null == prefix) 81 && ((name != null) && ((colon = name.indexOf(':')) != -1))) { 82 mPrefix = name.substring(0, colon); 83 mLocalName = name.substring(colon + 1); 84 } else { 85 mPrefix = prefix; 86 mLocalName = name; 87 } 88 } 89 90 95 public static QName getQNameFromString(String qNameString) { 96 QName qName = new QName(QName.getNamespaceURI(qNameString), 97 QName.getPrefix(qNameString), 98 QName.getLocalName(qNameString)); 99 100 if(qName.getLocalName() == null) { 101 return null; 102 } 103 104 return qName; 105 } 106 107 112 public static String getPrefix(String qName) { 113 if(qName == null || qName.trim().equals("")) { 114 return null; 115 } 116 117 int index = qName.indexOf('{'); 118 if(index != -1) { 120 return null; 121 } 122 123 index = qName.lastIndexOf(':'); 124 125 return ((index > 0) ? qName.substring(0, index) : null); 126 } 127 128 133 public static String getLocalName(String qName) { 134 if(qName == null || qName.trim().equals("")) { 135 return null; 136 } 137 138 int index = qName.lastIndexOf('}'); 140 141 if(index == -1) { 142 index = qName.lastIndexOf(':'); 143 } 144 145 return ((index < 0) ? qName : qName.substring(index + 1)); 146 } 147 148 public static String getNamespaceURI(String qName) { 149 if(qName == null || qName.trim().equals("")) { 150 return null; 151 } 152 153 String namespace = null; 154 int sIndex = qName.indexOf('{'); 155 int eIndex = qName.lastIndexOf('}'); 156 157 if(sIndex != -1 158 && eIndex != -1) { 159 namespace = qName.substring(sIndex+1, eIndex); 160 } 161 162 return namespace; 163 } 164 165 169 public String getLocalName() { 170 return mLocalName; 171 } 172 173 177 public void setLocalName(String localName) { 178 mLocalName = localName; 179 } 180 181 185 public String getNamespaceURI() { 186 return mNamespaceURI; 187 } 188 189 193 public void setNamespaceURI(String namespaceURI) { 194 mNamespaceURI = namespaceURI; 195 } 196 197 201 public String getPrefix() { 202 return mPrefix; 203 } 204 205 209 public void setPrefix(String prefix) { 210 mPrefix = prefix; 211 } 212 213 222 public String toString() { 223 String qName = (null == getLocalName()) ? "" : getLocalName(); 224 225 if (getPrefix() != null) { 226 return getPrefix() + ':' + qName; 227 } else if (getNamespaceURI() != null) { 228 return '{' + getNamespaceURI() + '}' + qName; 229 } else { 230 return qName; 231 } 232 } 233 234 public boolean equals(Object src) { 235 if(!(src instanceof QName)) { 236 return false; 237 } 238 239 QName srcQName = (QName) src; 240 return this.toString().equals(srcQName.toString()); 241 242 } 243 244 public int hashCode() { 245 return this.toString().hashCode(); 246 } 247 } 248 | Popular Tags |