X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.acr%2Fsrc%2Forg%2Fargeo%2Fapi%2Facr%2Fspi%2FProvidedSession.java;h=6d0dfbb245b323db00063472aa8a8c161cd790d9;hb=HEAD;hp=f90d6747565b81aeadee1d74075e7d86c2cd30c9;hpb=fba42be03bc7ec07d464f8942f7dfa2e5f0d6f17;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedSession.java b/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedSession.java index f90d67475..6d0dfbb24 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedSession.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedSession.java @@ -1,68 +1,45 @@ package org.argeo.api.acr.spi; -import java.util.Collections; import java.util.Iterator; -import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CompletionStage; -import javax.xml.XMLConstants; -import javax.xml.namespace.NamespaceContext; - -import org.argeo.api.acr.ContentNameSupplier; +import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentSession; +import org.argeo.api.acr.RuntimeNamespaceContext; -public interface ProvidedSession extends ContentSession, NamespaceContext { +/** A {@link ContentSession} implementation. */ +public interface ProvidedSession extends ContentSession { ProvidedRepository getRepository(); + CompletionStage onClose(); + + Content getMountPoint(String path); + + boolean isEditing(); + + void notifyModification(ProvidedContent content); + + UUID uuid(); + +// Content getSessionRunDir(); + /* * NAMESPACE CONTEXT */ - /** @return the bound namespace or null if not found */ - String findNamespace(String prefix); - - // TODO find the default prefix? - Set findPrefixes(String namespaceURI); - - /** To be overridden for optimisation, as it will be called a lot */ - default String findPrefix(String namespaceURI) { - Set prefixes = findPrefixes(namespaceURI); - if (prefixes.isEmpty()) - return null; - return prefixes.iterator().next(); - } @Override - default String getNamespaceURI(String prefix) { - String namespaceURI = ContentNameSupplier.getStandardNamespaceURI(prefix); - if (namespaceURI != null) - return namespaceURI; - if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) - return XMLConstants.NULL_NS_URI; - namespaceURI = findNamespace(prefix); - if (namespaceURI != null) - return namespaceURI; - return XMLConstants.NULL_NS_URI; + default String getPrefix(String namespaceURI) { + return RuntimeNamespaceContext.getNamespaceContext().getPrefix(namespaceURI); } @Override - default String getPrefix(String namespaceURI) { - String prefix = ContentNameSupplier.getStandardPrefix(namespaceURI); - if (prefix != null) - return prefix; - if (XMLConstants.NULL_NS_URI.equals(namespaceURI)) - return XMLConstants.DEFAULT_NS_PREFIX; - return findPrefix(namespaceURI); + default String getNamespaceURI(String prefix) { + return RuntimeNamespaceContext.getNamespaceContext().getNamespaceURI(prefix); } @Override default Iterator getPrefixes(String namespaceURI) { - Iterator standard = ContentNameSupplier.getStandardPrefixes(namespaceURI); - if (standard != null) - return standard; - if (XMLConstants.NULL_NS_URI.equals(namespaceURI)) - return Collections.singleton(XMLConstants.DEFAULT_NS_PREFIX).iterator(); - Set prefixes = findPrefixes(namespaceURI); - assert prefixes != null; - return prefixes.iterator(); + return RuntimeNamespaceContext.getNamespaceContext().getPrefixes(namespaceURI); } - }