X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjcr%2FSlcJcrResultUtils.java;h=729c2d74b7c3dcd958dfce3959291586a8bea4ee;hb=f86db0937b395c7fa96fa4bf4a29cc2c676fe3f5;hp=ba54c1378c26e601457a34dafa13a54d7e5f077d;hpb=76420da459e9fe47612f77166f5e708648e40ef1;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcJcrResultUtils.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcJcrResultUtils.java index ba54c1378..729c2d74b 100644 --- a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcJcrResultUtils.java +++ b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/SlcJcrResultUtils.java @@ -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();