]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcJcrResultUtils.java
Provide SlcAgentFactory in the core agent
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / SlcJcrResultUtils.java
index ba54c1378c26e601457a34dafa13a54d7e5f077d..729c2d74b7c3dcd958dfce3959291586a8bea4ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2012 Mathieu Baudier
+ * Copyright (C) 2007-2012 Argeo GmbH
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,6 +47,38 @@ public class SlcJcrResultUtils {
                }
        }
 
+       /**
+        * Returns the base node to store SlcResults. If it does not exists, it is
+        * created. If a node already exists at the given path with the wrong type,
+        * it throws an exception.
+        * 
+        * @param session
+        * @return
+        */
+       public static Node getSlcResultsParentNode(Session session) {
+               try {
+                       String absPath = getSlcResultsBasePath(session);
+                       if (session.nodeExists(absPath)) {
+                               Node currNode = session.getNode(absPath);
+                               if (currNode.isNodeType(NodeType.NT_UNSTRUCTURED))
+                                       return currNode;
+                               else
+                                       throw new SlcException(
+                                                       "A node already exists at this path : " + absPath
+                                                                       + " that has the wrong type. ");
+                       } else {
+                               Node slcResParNode = JcrUtils.mkdirs(session, absPath);
+                               slcResParNode.setPrimaryType(NodeType.NT_UNSTRUCTURED);
+                               session.save();
+                               return slcResParNode;
+                       }
+               } catch (RepositoryException re) {
+                       throw new SlcException(
+                                       "Unexpected error while creating slcResult root parent node.",
+                                       re);
+               }
+       }
+
        /**
         * Returns the path to the current Result UI specific node, depending the
         * current user
@@ -66,9 +98,9 @@ public class SlcJcrResultUtils {
        }
 
        /**
-        * Creates a new node with type NodeType.NT_UNSTRUCTURED at the given
-        * absolute path. If a node already exists at the given path, returns that
-        * node if it has the correct type and throws an exception otherwise.
+        * Creates a new node with type SlcTypes.SLC_MY_RESULT_ROOT_FOLDER at the
+        * given absolute path. If a node already exists at the given path, returns
+        * that node if it has the correct type and throws an exception otherwise.
         * 
         * @param session
         * @return
@@ -78,7 +110,7 @@ public class SlcJcrResultUtils {
                        String absPath = getMyResultsBasePath(session);
                        if (session.nodeExists(absPath)) {
                                Node currNode = session.getNode(absPath);
-                               if (currNode.isNodeType(NodeType.NT_UNSTRUCTURED))
+                               if (currNode.isNodeType(SlcTypes.SLC_MY_RESULT_ROOT_FOLDER))
                                        return currNode;
                                else
                                        throw new SlcException(
@@ -86,7 +118,7 @@ public class SlcJcrResultUtils {
                                                                        + " that has the wrong type. ");
                        } else {
                                Node myResParNode = JcrUtils.mkdirs(session, absPath);
-                               myResParNode.setPrimaryType(NodeType.NT_UNSTRUCTURED);
+                               myResParNode.setPrimaryType(SlcTypes.SLC_MY_RESULT_ROOT_FOLDER);
                                session.save();
                                return myResParNode;
                        }
@@ -121,7 +153,7 @@ public class SlcJcrResultUtils {
                        }
                        Node rfNode = JcrUtils.mkdirs(session, absPath);
                        rfNode.setPrimaryType(SlcTypes.SLC_RESULT_FOLDER);
-                       Node statusNode = rfNode.addNode(SlcNames.SLC_STATUS,
+                       Node statusNode = rfNode.addNode(SlcNames.SLC_AGGREGATED_STATUS,
                                        SlcTypes.SLC_CHECK);
                        statusNode.setProperty(SlcNames.SLC_SUCCESS, true);
                        session.save();