]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.api.acr/src/org/argeo/api/acr/ContentSession.java
Merge tag 'v2.3.28' into testing
[lgpl/argeo-commons.git] / org.argeo.api.acr / src / org / argeo / api / acr / ContentSession.java
index 215bb9e22f8a70d577673b3601003068364e3273..7a6e67981d71899643bd5ad53bc115b530877a1f 100644 (file)
@@ -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<ContentSession> edit(Consumer<ContentSession> work);
 
+       Stream<Content> search(Consumer<BasicSearch> search);
 }