]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.util/src/org/argeo/util/naming/QNamed.java
Use runtime namespace context as default.
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / naming / QNamed.java
1 package org.argeo.util.naming;
2
3 import javax.xml.namespace.QName;
4
5 /** A (possibly) qualified name. To be used in enums. */
6 public interface QNamed {
7 String name();
8
9 default QName qName() {
10 return new DisplayQName(getNamespace(), name(), getDefaultPrefix());
11 }
12
13 String getNamespace();
14
15 String getDefaultPrefix();
16
17 static class DisplayQName extends QName {
18 private static final long serialVersionUID = 2376484886212253123L;
19
20 public DisplayQName(String namespaceURI, String localPart, String prefix) {
21 super(namespaceURI, localPart, prefix);
22 }
23
24 public DisplayQName(String localPart) {
25 super(localPart);
26 }
27
28 @Override
29 public String toString() {
30 String prefix = getPrefix();
31 assert prefix != null;
32 return "".equals(prefix) ? getLocalPart() : prefix + ":" + getLocalPart();
33 }
34
35 }
36 }