]> git.argeo.org Git - gpl/argeo-jcr.git/blob - org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrSessionNamespaceContext.java
Optimisation and caching
[gpl/argeo-jcr.git] / org.argeo.cms.jcr / src / org / argeo / cms / jcr / acr / JcrSessionNamespaceContext.java
1 package org.argeo.cms.jcr.acr;
2
3 import java.util.Arrays;
4 import java.util.Iterator;
5
6 import javax.jcr.RepositoryException;
7 import javax.jcr.Session;
8 import javax.xml.namespace.NamespaceContext;
9
10 import org.argeo.jcr.JcrException;
11
12 /** A {@link NamespaceContext} based on a JCR {@link Session}. */
13 public class JcrSessionNamespaceContext implements NamespaceContext {
14 private final Session session;
15
16 public JcrSessionNamespaceContext(Session session) {
17 this.session = session;
18 }
19
20 @Override
21 public String getNamespaceURI(String prefix) {
22 try {
23 return session.getNamespaceURI(prefix);
24 } catch (RepositoryException e) {
25 throw new JcrException(e);
26 }
27 }
28
29 @Override
30 public String getPrefix(String namespaceURI) {
31 try {
32 return session.getNamespacePrefix(namespaceURI);
33 } catch (RepositoryException e) {
34 throw new JcrException(e);
35 }
36 }
37
38 @Override
39 public Iterator<String> getPrefixes(String namespaceURI) {
40 try {
41 return Arrays.asList(session.getNamespacePrefix(namespaceURI)).iterator();
42 } catch (RepositoryException e) {
43 throw new JcrException(e);
44 }
45 }
46 }