]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/AbstractSlcJcrDao.java
Improve JCR
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / AbstractSlcJcrDao.java
1 package org.argeo.slc.jcr.dao;
2
3 import java.util.Calendar;
4 import java.util.Date;
5 import java.util.GregorianCalendar;
6
7 import javax.jcr.RepositoryException;
8 import javax.jcr.Session;
9 import javax.jcr.Workspace;
10 import javax.jcr.query.QueryManager;
11
12 import org.argeo.jcr.JcrUtils;
13 import org.argeo.jcr.NodeMapper;
14 import org.argeo.jcr.NodeMapperProvider;
15 import org.argeo.slc.SlcException;
16 import org.argeo.slc.runtime.SlcAgentDescriptor;
17 import org.argeo.slc.test.TestResult;
18 import org.argeo.slc.test.TestRunDescriptor;
19
20 public abstract class AbstractSlcJcrDao {
21
22 private Session session;
23
24 protected Workspace workspace;
25 protected QueryManager queryManager;
26 protected NodeMapper nodeMapper;
27
28 // We inject the nodeMapperProvider that define a default node mapper as an
29 // entry point of the NodeMapper
30 private NodeMapperProvider nodeMapperProvider;
31
32 public void init() {
33 try {
34 workspace = getSession().getWorkspace();
35 queryManager = workspace.getQueryManager();
36 nodeMapper = getNodeMapperProvider().findNodeMapper(null);
37 } catch (RepositoryException e) {
38 throw new SlcException("Cannot initialize DAO", e);
39 }
40 }
41
42 public void setSession(Session session) {
43 this.session = session;
44 }
45
46 protected Session getSession() {
47 return session;
48 }
49
50 // IoC
51 public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider) {
52 this.nodeMapperProvider = nodeMapperProvider;
53 }
54
55 // TODO : define a strategy to define basePathes
56 protected String basePath(TestResult testResult) {
57 Calendar cal = new GregorianCalendar();
58 cal.setTime(new Date());
59 return "/slc/testresults/" + JcrUtils.dateAsPath(cal) + "testresult";
60 }
61
62 protected String basePath(SlcAgentDescriptor slcAgentDescriptor) {
63 return "/slc/agents/"
64 + JcrUtils.hostAsPath(slcAgentDescriptor.getHost()) + "/agent";
65 }
66
67 protected String basePath(TestRunDescriptor testRunDescriptor) {
68 return "/slc/testruns/" + testRunDescriptor.getSlcExecutionUuid()
69 + "/testrun";
70 }
71
72 protected NodeMapperProvider getNodeMapperProvider() {
73 return this.nodeMapperProvider;
74 }
75
76 }