1 package org
.argeo
.api
.acr
;
3 import java
.util
.function
.Supplier
;
5 import javax
.xml
.XMLConstants
;
6 import javax
.xml
.namespace
.NamespaceContext
;
7 import javax
.xml
.namespace
.QName
;
9 /** An optionally qualified name. Primarily meant to be used in enums. */
10 public interface QNamed
extends Supplier
<String
> {
13 /** To be overridden when XML naming is not compatible with Java naming. */
14 default String
localName() {
18 default QName
qName() {
19 return new ContentName(getNamespace(), localName(), getDefaultPrefix());
22 default String
get(NamespaceContext namespaceContext
) {
23 return namespaceContext
.getPrefix(getNamespace()) + ":" + localName();
26 /** This qualified named with its default prefix. If it is unqualified this method should be overridden, or QNamed.Unqualified be used. */
27 default String
get() {
28 return getDefaultPrefix() + ":" + localName();
31 String
getNamespace();
33 String
getDefaultPrefix();
35 /** To be used by enums without namespace (typically XML attributes). */
36 static interface Unqualified
extends QNamed
{
38 default String
getNamespace() {
39 return XMLConstants
.NULL_NS_URI
;
43 default String
getDefaultPrefix() {
44 return XMLConstants
.DEFAULT_NS_PREFIX
;
48 default String
get() {