]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - gcr/ContentNameSupplier.java
1 package org
.argeo
.api
.gcr
;
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
{
14 default ContentName
get() {
15 return toContentName();
18 default ContentName
toContentName() {
19 CompositeString cs
= new CompositeString(name());
20 String camlName
= cs
.toStringCaml(false);
21 return new ContentName(getNamespaceURI(), camlName
, this);
24 default String
getNamespaceURI() {
25 return XMLConstants
.NULL_NS_URI
;
28 default String
getDefaultPrefix() {
29 return XMLConstants
.DEFAULT_NS_PREFIX
;
32 // static ContentName toContentName(String namespaceURI, String localName, String prefix) {
33 // CompositeString cs = new CompositeString(localName);
34 // String camlName = cs.toStringCaml(false);
35 // return new ContentName(namespaceURI, camlName, this);
43 default String
getNamespaceURI(String prefix
) {
44 String namespaceURI
= getStandardNamespaceURI(prefix
);
45 if (namespaceURI
!= null)
47 if (prefix
.equals(getDefaultPrefix()))
48 return getNamespaceURI();
49 return XMLConstants
.NULL_NS_URI
;
53 default String
getPrefix(String namespaceURI
) {
54 String prefix
= getStandardPrefix(namespaceURI
);
57 if (namespaceURI
.equals(getNamespaceURI()))
58 return getDefaultPrefix();
63 default Iterator
<String
> getPrefixes(String namespaceURI
) {
64 Iterator
<String
> it
= getStandardPrefixes(namespaceURI
);
67 if (namespaceURI
.equals(getNamespaceURI()))
68 return Collections
.singleton(getDefaultPrefix()).iterator();
69 return Collections
.emptyIterator();
73 * DEFAULT NAMESPACE CONTEXT OPERATIONS as specified in NamespaceContext
75 static String
getStandardPrefix(String namespaceURI
) {
76 if (namespaceURI
== null)
77 throw new IllegalArgumentException("Namespace URI cannot be null");
78 if (XMLConstants
.XML_NS_URI
.equals(namespaceURI
))
79 return XMLConstants
.XML_NS_PREFIX
;
80 else if (XMLConstants
.XMLNS_ATTRIBUTE_NS_URI
.equals(namespaceURI
))
81 return XMLConstants
.XMLNS_ATTRIBUTE
;
85 static Iterator
<String
> getStandardPrefixes(String namespaceURI
) {
86 String prefix
= ContentNameSupplier
.getStandardPrefix(namespaceURI
);
89 return Collections
.singleton(prefix
).iterator();
92 static String
getStandardNamespaceURI(String prefix
) {
94 throw new IllegalArgumentException("Prefix cannot be null");
95 if (XMLConstants
.XML_NS_PREFIX
.equals(prefix
))
96 return XMLConstants
.XML_NS_URI
;
97 else if (XMLConstants
.XMLNS_ATTRIBUTE
.equals(prefix
))
98 return XMLConstants
.XMLNS_ATTRIBUTE_NS_URI
;