]> 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
introduce a new view to display JcrResults has a tree.
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / AbstractSlcJcrDao.java
1 /*
2 * Copyright (C) 2007-2012 Mathieu Baudier
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.argeo.slc.jcr.dao;
17
18 import java.util.Calendar;
19 import java.util.Date;
20 import java.util.GregorianCalendar;
21
22 import javax.jcr.NamespaceRegistry;
23 import javax.jcr.RepositoryException;
24 import javax.jcr.Session;
25 import javax.jcr.query.Query;
26
27 import org.argeo.ArgeoException;
28 import org.argeo.jcr.JcrUtils;
29 import org.argeo.jcr.NodeMapper;
30 import org.argeo.jcr.NodeMapperProvider;
31 import org.argeo.slc.runtime.SlcAgentDescriptor;
32 import org.argeo.slc.test.TestResult;
33 import org.argeo.slc.test.TestRunDescriptor;
34
35 public abstract class AbstractSlcJcrDao {
36
37 private Session session;
38
39 // protected Workspace workspace;
40 // protected QueryManager queryManager;
41 protected NodeMapper nodeMapper;
42
43 // We inject the nodeMapperProvider that define a default node mapper as an
44 // entry point of the NodeMapper
45 private NodeMapperProvider nodeMapperProvider;
46
47 public void init() {
48 nodeMapper = getNodeMapperProvider().findNodeMapper(null);
49 // JcrUtils.registerNamespaceSafely(session, "slc",
50 // "http://www.argeo.org/slc/0.12");
51
52 }
53
54 public void setSession(Session session) {
55 this.session = session;
56 }
57
58 protected Session getSession() {
59 return session;
60 }
61
62 // IoC
63 public void setNodeMapperProvider(NodeMapperProvider nodeMapperProvider) {
64 this.nodeMapperProvider = nodeMapperProvider;
65 }
66
67 // TODO : define a strategy to define basePathes
68 protected String basePath(TestResult testResult) {
69 Calendar cal = new GregorianCalendar();
70 cal.setTime(new Date());
71 return "/slc/testresults/" + JcrUtils.dateAsPath(cal) + "testresult";
72 }
73
74 protected String basePath(SlcAgentDescriptor slcAgentDescriptor) {
75 return "/slc/agents/"
76 + JcrUtils.hostAsPath(slcAgentDescriptor.getHost()) + "/agent";
77 }
78
79 protected String basePath(TestRunDescriptor testRunDescriptor) {
80 return "/slc/testruns/" + testRunDescriptor.getSlcExecutionUuid()
81 + "/testrun";
82 }
83
84 protected NodeMapperProvider getNodeMapperProvider() {
85 return this.nodeMapperProvider;
86 }
87
88 protected Query createQuery(String query, String type) {
89 try {
90 return getSession().getWorkspace().getQueryManager().createQuery(
91 query, type);
92 } catch (RepositoryException e) {
93 throw new ArgeoException("Cannot create query " + query, e);
94 }
95 }
96 }