* @param module {org.argeo.slc.ria.execution.Module} Reference module\r
* @param flow {org.argeo.slc.ria.execution.Flow} Reference flow\r
*/\r
- construct : function(module, flow){\r
+ construct : function(module, flow, xmlElement){\r
this.base(arguments);\r
- this.setModule(module);\r
- this.setFlow(flow);\r
- this.setOriginalSpec(flow.getExecutionSpec());\r
- this.setName(flow.getExecutionSpec().getName());\r
+ if(xmlElement){\r
+ this.fromXml(xmlElement);\r
+ }else{\r
+ this.setModule(module);\r
+ this.setFlow(flow);\r
+ this.setOriginalSpec(flow.getExecutionSpec());\r
+ this.setName(flow.getExecutionSpec().getName());\r
+ }\r
this.fetchInstanceValues();\r
},\r
\r
var valuesXml = '';\r
var values = this.getValues();\r
for(var key in values){\r
- if(values[key].getValue() == null){\r
+ if(values[key].getValue() == null && !values[key].isFrozen() && !values[key].isHidden()){\r
throw new Error("Cannot send empty values! (Parameter "+key+")");\r
}\r
valuesXml += values[key].toValueXml();\r
\r
},\r
\r
+ fromXml : function(xmlElement){\r
+ var parser = org.argeo.ria.util.Element;\r
+ var simpleModule = new org.argeo.slc.ria.execution.Module();\r
+ simpleModule.setName(parser.getSingleNodeText(xmlElement, "slc:module-name"));\r
+ simpleModule.setVersion(parser.getSingleNodeText(xmlElement, "slc:module-version"));\r
+ this.setModule(simpleModule);\r
+ \r
+ var spec = new org.argeo.slc.ria.execution.Spec();\r
+ var flow = new org.argeo.slc.ria.execution.Flow();\r
+ spec.setXmlNode(parser.selectSingleNode(xmlElement, "slc:default-execution-spec"));\r
+ flow.setXmlNode(parser.selectSingleNode(xmlElement, "slc:execution-flow-descriptor"));\r
+ flow.setExecutionSpec(spec);\r
+ this.setOriginalSpec(spec);\r
+ this.setFlow(flow);\r
+ this.setName(spec.getName());\r
+ \r
+ },\r
+ \r
/**\r
* Fetch the Spec Values with the Flow Values to make the current instance value\r
*/\r
}\r
instanceValues[key] = instValue;\r
}\r
- this.setValues(instanceValues);\r
- this.debug(instanceValues);\r
+ this.setValues(instanceValues); \r
}\r
}\r
});
\ No newline at end of file