X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjcr%2Fexecution%2FJcrExecutionModulesListener.java;h=8543689294323ff8e0c3f24c59b7fea830b6b0d3;hb=26cd9f658531888bfa9ba69ea5c034839b4c4149;hp=90b86f3d327549e76cb2693726795d102532e6c7;hpb=ac38932aab09592c1ec0af26c26899536dff284f;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java index 90b86f3d3..854368929 100644 --- a/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java +++ b/runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/execution/JcrExecutionModulesListener.java @@ -16,6 +16,7 @@ import org.apache.commons.logging.LogFactory; import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; import org.argeo.slc.core.execution.PrimitiveSpecAttribute; +import org.argeo.slc.core.execution.PrimitiveValue; import org.argeo.slc.core.execution.RefSpecAttribute; import org.argeo.slc.core.execution.RefValueChoice; import org.argeo.slc.deploy.ModuleDescriptor; @@ -207,6 +208,8 @@ public class JcrExecutionModulesListener implements ExecutionModulesListener, SlcTypes.SLC_EXECUTION_FLOW); } } + + // name, description flowNode.setProperty(SLC_NAME, efd.getName()); String[] tokens = relativePath.split("/"); flowNode.setProperty(Property.JCR_TITLE, tokens[tokens.length - 1]); @@ -218,6 +221,7 @@ public class JcrExecutionModulesListener implements ExecutionModulesListener, ExecutionSpec executionSpec = efd.getExecutionSpec(); String esName = executionSpec.getName(); if (!(esName == null || esName.equals(ExecutionSpec.INTERNAL_NAME))) { + // reference spec node Node executionSpecsNode = moduleNode.hasNode(SLC_EXECUTION_SPECS) ? moduleNode .getNode(SLC_EXECUTION_SPECS) : moduleNode .addNode(SLC_EXECUTION_SPECS); @@ -232,8 +236,25 @@ public class JcrExecutionModulesListener implements ExecutionModulesListener, mapExecutionSpec(executionSpecNode, executionSpec); flowNode.setProperty(SLC_SPEC, executionSpecNode); } else { + // internal spec node mapExecutionSpec(flowNode, executionSpec); } + + // values + for (String attr : efd.getValues().keySet()) { + if (log.isDebugEnabled()) + log.debug(attr + "=" + efd.getValues().get(attr)); + ExecutionSpecAttribute esa = executionSpec.getAttributes() + .get(attr); + if (esa instanceof PrimitiveSpecAttribute) { + PrimitiveSpecAttribute psa = (PrimitiveSpecAttribute) esa; + Node valueNode = flowNode.addNode(attr); + valueNode.setProperty(SLC_TYPE, psa.getType()); + SlcJcrUtils.setPrimitiveAsProperty(valueNode, SLC_VALUE, + (PrimitiveValue) efd.getValues().get(attr)); + } + } + return flowNode; }