]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TestRunDescriptorDaoJcr.java
Take over JCR implementation
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / TestRunDescriptorDaoJcr.java
diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TestRunDescriptorDaoJcr.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TestRunDescriptorDaoJcr.java
new file mode 100644 (file)
index 0000000..44db33d
--- /dev/null
@@ -0,0 +1,38 @@
+package org.argeo.slc.jcr.dao;
+
+import javax.jcr.Node;
+import javax.jcr.query.Query;
+
+import org.argeo.jcr.JcrUtils;
+import org.argeo.slc.SlcException;
+import org.argeo.slc.dao.test.TestRunDescriptorDao;
+import org.argeo.slc.test.TestRunDescriptor;
+
+public class TestRunDescriptorDaoJcr extends AbstractSlcJcrDao implements
+               TestRunDescriptorDao {
+
+       public TestRunDescriptor getTestRunDescriptor(String id) {
+               try {
+                       // TODO: optimize query
+                       String queryString = "//testrun[@testRunUuid='" + id + "']";
+                       Query query = queryManager.createQuery(queryString, Query.XPATH);
+                       Node node = JcrUtils.querySingleNode(query);
+                       if (node == null)
+                               return null;
+                       return (TestRunDescriptor) nodeMapper.load(node);
+               } catch (Exception e) {
+                       throw new SlcException("Cannot load test run descriptor" + id, e);
+               }
+       }
+
+       public void saveOrUpdate(TestRunDescriptor testRunDescriptor) {
+               try {
+                       nodeMapper.save(getSession(), basePath(testRunDescriptor),
+                                       testRunDescriptor);
+                       getSession().save();
+               } catch (Exception e) {
+                       throw new SlcException("Cannot import " + testRunDescriptor, e);
+               }
+       }
+
+}