]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.util/src/org/argeo/util/naming/QNamed.java
Improve naming. Fix Argeo namespace base.
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / util / naming / QNamed.java
diff --git a/org.argeo.util/src/org/argeo/util/naming/QNamed.java b/org.argeo.util/src/org/argeo/util/naming/QNamed.java
new file mode 100644 (file)
index 0000000..9eac360
--- /dev/null
@@ -0,0 +1,36 @@
+package org.argeo.util.naming;
+
+import javax.xml.namespace.QName;
+
+/** A (possibly) qualified name. To be used in enums. */
+public interface QNamed {
+       String name();
+
+       default QName qName() {
+               return new DisplayQName(getNamespace(), name(), getDefaultPrefix());
+       }
+
+       String getNamespace();
+
+       String getDefaultPrefix();
+
+       static class DisplayQName extends QName {
+               private static final long serialVersionUID = 2376484886212253123L;
+
+               public DisplayQName(String namespaceURI, String localPart, String prefix) {
+                       super(namespaceURI, localPart, prefix);
+               }
+
+               public DisplayQName(String localPart) {
+                       super(localPart);
+               }
+
+               @Override
+               public String toString() {
+                       String prefix = getPrefix();
+                       assert prefix != null;
+                       return "".equals(prefix) ? getLocalPart() : prefix + ":" + getLocalPart();
+               }
+
+       }
+}