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 default String
get() {
27 return getDefaultPrefix() + ":" + localName();
30 String
getNamespace();
32 String
getDefaultPrefix();
34 /** To be used by enums without namespace (typically XML attributes). */
35 static interface Unqualified
extends QNamed
{
37 default String
getNamespace() {
38 return XMLConstants
.NULL_NS_URI
;
42 default String
getDefaultPrefix() {
43 return XMLConstants
.DEFAULT_NS_PREFIX
;