X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.acr%2Fsrc%2Forg%2Fargeo%2Fapi%2Facr%2FContentSession.java;h=7a6e67981d71899643bd5ad53bc115b530877a1f;hb=b95462873703848193e56fcbe997693630db6121;hp=215bb9e22f8a70d577673b3601003068364e3273;hpb=fba42be03bc7ec07d464f8942f7dfa2e5f0d6f17;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/ContentSession.java b/org.argeo.api.acr/src/org/argeo/api/acr/ContentSession.java index 215bb9e22..7a6e67981 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/ContentSession.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ContentSession.java @@ -1,13 +1,16 @@ package org.argeo.api.acr; import java.util.Locale; -import java.util.Objects; +import java.util.concurrent.CompletionStage; +import java.util.function.Consumer; +import java.util.stream.Stream; import javax.security.auth.Subject; -import javax.xml.XMLConstants; import javax.xml.namespace.NamespaceContext; -import javax.xml.namespace.QName; +import org.argeo.api.acr.search.BasicSearch; + +/** An authenticated session to a repository. */ public interface ContentSession extends NamespaceContext { Subject getSubject(); @@ -15,35 +18,9 @@ public interface ContentSession extends NamespaceContext { Content get(String path); - /* - * NAMESPACE CONTEXT - */ - - default ContentName parsePrefixedName(String nameWithPrefix) { - Objects.requireNonNull(nameWithPrefix, "Name cannot be null"); - if (nameWithPrefix.charAt(0) == '{') { - return new ContentName(QName.valueOf(nameWithPrefix), this); - } - int index = nameWithPrefix.indexOf(':'); - if (index < 0) { - return new ContentName(nameWithPrefix); - } - String prefix = nameWithPrefix.substring(0, index); - // TODO deal with empty name? - String localName = nameWithPrefix.substring(index + 1); - String namespaceURI = getNamespaceURI(prefix); - if (XMLConstants.NULL_NS_URI.equals(namespaceURI)) - throw new IllegalStateException("Prefix " + prefix + " is unbound."); - return new ContentName(namespaceURI, localName, prefix); - } - - default String toPrefixedName(QName name) { - if (XMLConstants.NULL_NS_URI.equals(name.getNamespaceURI())) - return name.getLocalPart(); - String prefix = getPrefix(name.getNamespaceURI()); - if (prefix == null) - throw new IllegalStateException("Namespace " + name.getNamespaceURI() + " is unbound."); - return prefix + ":" + name.getLocalPart(); - } + boolean exists(String path); + + CompletionStage edit(Consumer work); + Stream search(Consumer search); }