+++ /dev/null
-/**\r
- * Data model for an entry of the Batch list : original Spec, flow and module, and currently computed value.\r
- */\r
-qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", {\r
- extend : org.argeo.slc.ria.execution.Spec,\r
- \r
- properties : {\r
- /**\r
- * Reference module\r
- */\r
- module :{},\r
- /**\r
- * Reference flow\r
- */\r
- flow : {},\r
- /**\r
- * Original Spec (values shall stay untouched).\r
- */\r
- originalSpec : {} \r
- },\r
- \r
- /**\r
- * Instance of BatchEntrySpec\r
- * @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, xmlElement){\r
- this.base(arguments);\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
- members : {\r
- /**\r
- * Create a label to display in the batch list.\r
- * @return {String} The label\r
- */\r
- getLabel : function(){\r
- var label = this.getModule().getName();\r
- label += "/" + this.getModule().getVersion();\r
- label += "/" + this.getFlow().getName();\r
- return label;\r
- },\r
- \r
- toXml : function(){ \r
- var valuesXml = '';\r
- var values = this.getValues();\r
- for(var key in values){\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
- var execFlowDescXML = '<slc:execution-flow-descriptor name="'+this.getFlow().getName()+'" executionSpec="'+this.getName()+'">';\r
- if(this.getFlow().getDescription()!=""){\r
- execFlowDescXML += '<slc:description>'+this.getFlow().getDescription()+'</slc:description>';\r
- }\r
- execFlowDescXML += '<slc:values>'+valuesXml+'</slc:values></slc:execution-flow-descriptor>';\r
- \r
- var execSpecDescXML = this.getOriginalSpec().toXml();\r
- \r
- var moduleData = this.getModule().moduleDataToXml();\r
- \r
- return '<slc:realized-flow>'+moduleData + execFlowDescXML + execSpecDescXML +'</slc:realized-flow>';\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
- fetchInstanceValues : function(){\r
- var specValues = this.getOriginalSpec().getValues();\r
- var flow = this.getFlow();\r
- var instanceValues = {};\r
- for(var key in specValues){\r
- var flowValue = flow.getValue(\r
- key, \r
- specValues[key].getSpecType(), \r
- specValues[key].getSpecSubType()\r
- );\r
- var instValue = specValues[key].clone();\r
- if(flowValue){\r
- instValue.setValue(flowValue);\r
- }\r
- instanceValues[key] = instValue;\r
- }\r
- this.setValues(instanceValues); \r
- }\r
- }\r
-});
\ No newline at end of file