X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.acr%2Fsrc%2Forg%2Fargeo%2Fapi%2Facr%2Fspi%2FProvidedSession.java;h=60f64def8dd77ad128e2b7931c6624f64b2ae161;hb=c615307d7b87bcb260d8a9f402c6e0a880862f38;hp=f90d6747565b81aeadee1d74075e7d86c2cd30c9;hpb=7d2a002f5dcfe8a8c7b29803b70d4b1aff265ed1;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..60f64def8 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,74 @@ package org.argeo.api.acr.spi; -import java.util.Collections; import java.util.Iterator; -import java.util.Set; +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.ContentSession; -public interface ProvidedSession extends ContentSession, NamespaceContext { +public interface ProvidedSession extends ContentSession { ProvidedRepository getRepository(); + CompletionStage onClose(); + /* * 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; - } @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); + Iterator prefixes = getPrefixes(namespaceURI); + return prefixes.hasNext() ? prefixes.next() : null; } - @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 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 = NamespaceUtils.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; +// } +// +// @Override +// default String getPrefix(String namespaceURI) { +// String prefix = NamespaceUtils.getStandardPrefix(namespaceURI); +// if (prefix != null) +// return prefix; +// if (XMLConstants.NULL_NS_URI.equals(namespaceURI)) +// return XMLConstants.DEFAULT_NS_PREFIX; +// return findPrefix(namespaceURI); +// } +// +// @Override +// default Iterator getPrefixes(String namespaceURI) { +// Iterator standard = NamespaceUtils.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(); +// } }