]> git.argeo.org Git - lgpl/argeo-commons.git/blob - gcr/JcrContentProvider.java
Prepare next development cycle
[lgpl/argeo-commons.git] / gcr / JcrContentProvider.java
1 package org.argeo.cms.jcr.gcr;
2
3 import java.util.Arrays;
4 import java.util.Iterator;
5
6 import javax.jcr.Repository;
7 import javax.jcr.RepositoryException;
8 import javax.jcr.Session;
9 import javax.xml.namespace.NamespaceContext;
10
11 import org.argeo.api.gcr.Content;
12 import org.argeo.api.gcr.spi.ContentProvider;
13 import org.argeo.api.gcr.spi.ProvidedSession;
14 import org.argeo.cms.jcr.CmsJcrUtils;
15 import org.argeo.jcr.JcrException;
16 import org.argeo.jcr.JcrUtils;
17
18 public class JcrContentProvider implements ContentProvider, NamespaceContext {
19 private Repository jcrRepository;
20 private Session adminSession;
21
22 public void init() {
23 adminSession = CmsJcrUtils.openDataAdminSession(jcrRepository, null);
24 }
25
26 public void destroy() {
27 JcrUtils.logoutQuietly(adminSession);
28 }
29
30 public void setJcrRepository(Repository jcrRepository) {
31 this.jcrRepository = jcrRepository;
32 }
33
34 @Override
35 public Content get(ProvidedSession session, String mountPath, String relativePath) {
36 // TODO Auto-generated method stub
37 return null;
38 }
39
40 /*
41 * NAMESPACE CONTEXT
42 */
43 @Override
44 public String getNamespaceURI(String prefix) {
45 try {
46 return adminSession.getNamespaceURI(prefix);
47 } catch (RepositoryException e) {
48 throw new JcrException(e);
49 }
50 }
51
52 @Override
53 public String getPrefix(String namespaceURI) {
54 try {
55 return adminSession.getNamespacePrefix(namespaceURI);
56 } catch (RepositoryException e) {
57 throw new JcrException(e);
58 }
59 }
60
61 @Override
62 public Iterator<String> getPrefixes(String namespaceURI) {
63 try {
64 return Arrays.asList(adminSession.getNamespacePrefix(namespaceURI)).iterator();
65 } catch (RepositoryException e) {
66 throw new JcrException(e);
67 }
68 }
69
70 }