]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.acr/src/org/argeo/api/acr/ContentSession.java
1 package org
.argeo
.api
.acr
;
3 import java
.util
.Locale
;
4 import java
.util
.Objects
;
6 import javax
.security
.auth
.Subject
;
7 import javax
.xml
.XMLConstants
;
8 import javax
.xml
.namespace
.NamespaceContext
;
9 import javax
.xml
.namespace
.QName
;
11 public interface ContentSession
extends NamespaceContext
{
16 Content
get(String path
);
22 default ContentName
parsePrefixedName(String nameWithPrefix
) {
23 Objects
.requireNonNull(nameWithPrefix
, "Name cannot be null");
24 if (nameWithPrefix
.charAt(0) == '{') {
25 return new ContentName(QName
.valueOf(nameWithPrefix
), this);
27 int index
= nameWithPrefix
.indexOf(':');
29 return new ContentName(nameWithPrefix
);
31 String prefix
= nameWithPrefix
.substring(0, index
);
32 // TODO deal with empty name?
33 String localName
= nameWithPrefix
.substring(index
+ 1);
34 String namespaceURI
= getNamespaceURI(prefix
);
35 if (XMLConstants
.NULL_NS_URI
.equals(namespaceURI
))
36 throw new IllegalStateException("Prefix " + prefix
+ " is unbound.");
37 return new ContentName(namespaceURI
, localName
, prefix
);
40 default String
toPrefixedName(QName name
) {
41 if (XMLConstants
.NULL_NS_URI
.equals(name
.getNamespaceURI()))
42 return name
.getLocalPart();
43 String prefix
= getPrefix(name
.getNamespaceURI());
45 throw new IllegalStateException("Namespace " + name
.getNamespaceURI() + " is unbound.");
46 return prefix
+ ":" + name
.getLocalPart();