]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.acr/src/org/argeo/api/acr/ContentNameSupplier.java
e3c721feff1e5e498f0f7c273c148c989e0703e0
1 package org
.argeo
.api
.acr
;
3 import java
.util
.Collections
;
4 import java
.util
.Iterator
;
5 import java
.util
.function
.Supplier
;
7 import javax
.xml
.XMLConstants
;
8 import javax
.xml
.namespace
.NamespaceContext
;
10 public interface ContentNameSupplier
extends Supplier
<ContentName
>, NamespaceContext
{
13 String
getNamespaceURI();
15 String
getDefaultPrefix();
18 default ContentName
get() {
19 return toContentName();
22 default ContentName
toContentName() {
23 CompositeString cs
= new CompositeString(name());
24 String camlName
= cs
.toStringCaml(false);
25 return new ContentName(getNamespaceURI(), camlName
, this);
28 // default String getNamespaceURI() {
29 // return XMLConstants.NULL_NS_URI;
32 // default String getDefaultPrefix() {
33 // return XMLConstants.DEFAULT_NS_PREFIX;
36 // static ContentName toContentName(String namespaceURI, String localName, String prefix) {
37 // CompositeString cs = new CompositeString(localName);
38 // String camlName = cs.toStringCaml(false);
39 // return new ContentName(namespaceURI, camlName, this);
47 default String
getNamespaceURI(String prefix
) {
48 String namespaceURI
= getStandardNamespaceURI(prefix
);
49 if (namespaceURI
!= null)
51 if (prefix
.equals(getDefaultPrefix()))
52 return getNamespaceURI();
53 return XMLConstants
.NULL_NS_URI
;
57 default String
getPrefix(String namespaceURI
) {
58 String prefix
= getStandardPrefix(namespaceURI
);
61 if (namespaceURI
.equals(getNamespaceURI()))
62 return getDefaultPrefix();
67 default Iterator
<String
> getPrefixes(String namespaceURI
) {
68 Iterator
<String
> it
= getStandardPrefixes(namespaceURI
);
71 if (namespaceURI
.equals(getNamespaceURI()))
72 return Collections
.singleton(getDefaultPrefix()).iterator();
73 return Collections
.emptyIterator();
77 * DEFAULT NAMESPACE CONTEXT OPERATIONS as specified in NamespaceContext
79 static String
getStandardPrefix(String namespaceURI
) {
80 if (namespaceURI
== null)
81 throw new IllegalArgumentException("Namespace URI cannot be null");
82 if (XMLConstants
.XML_NS_URI
.equals(namespaceURI
))
83 return XMLConstants
.XML_NS_PREFIX
;
84 else if (XMLConstants
.XMLNS_ATTRIBUTE_NS_URI
.equals(namespaceURI
))
85 return XMLConstants
.XMLNS_ATTRIBUTE
;
89 static Iterator
<String
> getStandardPrefixes(String namespaceURI
) {
90 String prefix
= ContentNameSupplier
.getStandardPrefix(namespaceURI
);
93 return Collections
.singleton(prefix
).iterator();
96 static String
getStandardNamespaceURI(String prefix
) {
98 throw new IllegalArgumentException("Prefix cannot be null");
99 if (XMLConstants
.XML_NS_PREFIX
.equals(prefix
))
100 return XMLConstants
.XML_NS_URI
;
101 else if (XMLConstants
.XMLNS_ATTRIBUTE
.equals(prefix
))
102 return XMLConstants
.XMLNS_ATTRIBUTE_NS_URI
;