]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedSession.java
Improve ACR.
[lgpl/argeo-commons.git] / org.argeo.api.acr / src / org / argeo / api / acr / spi / ProvidedSession.java
1 package org.argeo.api.acr.spi;
2
3 import java.util.Iterator;
4 import java.util.UUID;
5 import java.util.concurrent.CompletionStage;
6
7 import org.argeo.api.acr.Content;
8 import org.argeo.api.acr.ContentSession;
9
10 /** A {@link ContentSession} implementation. */
11 public interface ProvidedSession extends ContentSession {
12 ProvidedRepository getRepository();
13
14 CompletionStage<ProvidedSession> onClose();
15
16 Content getMountPoint(String path);
17
18 boolean isEditing();
19
20 void notifyModification(ProvidedContent content);
21
22 UUID getUuid();
23
24 Content getSessionRunDir();
25
26 /*
27 * NAMESPACE CONTEXT
28 */
29
30 @Override
31 default String getPrefix(String namespaceURI) {
32 Iterator<String> prefixes = getPrefixes(namespaceURI);
33 return prefixes.hasNext() ? prefixes.next() : null;
34 }
35
36 // /** @return the bound namespace or null if not found */
37 // String findNamespace(String prefix);
38 //
39 // // TODO find the default prefix?
40 // Set<String> findPrefixes(String namespaceURI);
41 //
42 // /** To be overridden for optimisation, as it will be called a lot */
43 // default String findPrefix(String namespaceURI) {
44 // Set<String> prefixes = findPrefixes(namespaceURI);
45 // if (prefixes.isEmpty())
46 // return null;
47 // return prefixes.iterator().next();
48 // }
49
50 // @Override
51 // default String getNamespaceURI(String prefix) {
52 // String namespaceURI = NamespaceUtils.getStandardNamespaceURI(prefix);
53 // if (namespaceURI != null)
54 // return namespaceURI;
55 // if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix))
56 // return XMLConstants.NULL_NS_URI;
57 // namespaceURI = findNamespace(prefix);
58 // if (namespaceURI != null)
59 // return namespaceURI;
60 // return XMLConstants.NULL_NS_URI;
61 // }
62 //
63 // @Override
64 // default String getPrefix(String namespaceURI) {
65 // String prefix = NamespaceUtils.getStandardPrefix(namespaceURI);
66 // if (prefix != null)
67 // return prefix;
68 // if (XMLConstants.NULL_NS_URI.equals(namespaceURI))
69 // return XMLConstants.DEFAULT_NS_PREFIX;
70 // return findPrefix(namespaceURI);
71 // }
72 //
73 // @Override
74 // default Iterator<String> getPrefixes(String namespaceURI) {
75 // Iterator<String> standard = NamespaceUtils.getStandardPrefixes(namespaceURI);
76 // if (standard != null)
77 // return standard;
78 // if (XMLConstants.NULL_NS_URI.equals(namespaceURI))
79 // return Collections.singleton(XMLConstants.DEFAULT_NS_PREFIX).iterator();
80 // Set<String> prefixes = findPrefixes(namespaceURI);
81 // assert prefixes != null;
82 // return prefixes.iterator();
83 // }
84
85 }