]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/Module.js
Qooxdoo 0.8.3
[gpl/argeo-slc.git] / server / org.argeo.slc.ria / src / argeo-ria-lib / slc / class / org / argeo / slc / ria / execution / Module.js
index 3337b3ca9799432cb50c49bf449e92f3e9beb961..5ce6579b427fe0a54a824245fe2247f77190e2a4 100644 (file)
@@ -13,6 +13,14 @@ qx.Class.define("org.argeo.slc.ria.execution.Module", {
                        check : "String",\r
                        init : ""\r
                },\r
+               label : {\r
+                       check : "String",\r
+                       init : ""                       \r
+               },\r
+               description : {\r
+                       check : "String",\r
+                       init : ""                       \r
+               },\r
                /**\r
                 * The version of the module\r
                 */\r
@@ -41,10 +49,13 @@ qx.Class.define("org.argeo.slc.ria.execution.Module", {
        },\r
        \r
        statics : {\r
-               XPATH_NAME : "slc:execution-module-descriptor/slc:name",\r
-               XPATH_VERSION : "slc:execution-module-descriptor/slc:version",\r
-               XPATH_EXECUTION_FLOWS : "slc:execution-module-descriptor/slc:execution-flows/slc:execution-flow-descriptor",\r
-               XPATH_EXECUTION_SPECS : "slc:execution-module-descriptor/slc:execution-specs/slc:default-execution-spec"\r
+               XPATH_ROOT : "slc:execution-module-descriptor",         \r
+               XPATH_NAME : "slc:name",\r
+               XPATH_LABEL : "slc:label",\r
+               XPATH_DESCRIPTION : "slc:description",\r
+               XPATH_VERSION : "slc:version",\r
+               XPATH_EXECUTION_FLOWS : "slc:execution-flows/slc:execution-flow-descriptor",\r
+               XPATH_EXECUTION_SPECS : "slc:execution-specs/slc:default-execution-spec"\r
        },\r
        \r
        construct : function(){\r
@@ -93,27 +104,44 @@ qx.Class.define("org.argeo.slc.ria.execution.Module", {
                        return this.getExecutionFlows()[name];\r
                },\r
                \r
+               moduleDataToXml : function(){\r
+                       var xmlData = '<slc:module-name>'+this.getName()+'</slc:module-name>';\r
+                       xmlData += '<slc:module-version>'+this.getVersion()+'</slc:module-version>';\r
+                       return xmlData;\r
+               },\r
+               \r
                /**\r
                 * An xml node containing the castor mapped description of this object\r
                 * @param xmlNode {Node}\r
                 */\r
                _applyXmlNode : function(xmlNode){\r
-                       // Parse now\r
-                       this.setName(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_NAME) || "Not Found");\r
-                       this.setVersion(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_VERSION));\r
+                       var appendRoot = "";\r
+                       if(xmlNode.nodeName != this.self(arguments).XPATH_ROOT){\r
+                               appendRoot = this.self(arguments).XPATH_ROOT+"/";\r
+                       }\r
+                       // Parse now                    \r
+                       this.setName(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, appendRoot + this.self(arguments).XPATH_NAME) || "Not Found");\r
+                       this.setVersion(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, appendRoot + this.self(arguments).XPATH_VERSION));\r
+                       this.setLabel(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, appendRoot + this.self(arguments).XPATH_LABEL) || this.getName());\r
+                       this.setDescription(org.argeo.ria.util.Element.getSingleNodeText(xmlNode, appendRoot + this.self(arguments).XPATH_DESCRIPTION) || "");\r
+                       \r
                        // Parse Specs first\r
-                       var specs = org.argeo.ria.util.Element.selectNodes(xmlNode, this.self(arguments).XPATH_EXECUTION_SPECS);\r
-                       for(i=0; i< specs.length;i++){\r
-                               var execSpec = new org.argeo.slc.ria.execution.Spec();\r
-                               execSpec.setXmlNode(specs[i]);\r
-                               this.addExecutionSpec(execSpec);\r
+                       var specs = org.argeo.ria.util.Element.selectNodes(xmlNode, appendRoot + this.self(arguments).XPATH_EXECUTION_SPECS);\r
+                       if(specs){\r
+                               for(i=0; i< specs.length;i++){\r
+                                       var execSpec = new org.argeo.slc.ria.execution.Spec();\r
+                                       execSpec.setXmlNode(specs[i]);\r
+                                       this.addExecutionSpec(execSpec);\r
+                               }\r
                        }\r
-                       // Now parse Flows : to do AFTER specs\r
-                       var flows = org.argeo.ria.util.Element.selectNodes(xmlNode, this.self(arguments).XPATH_EXECUTION_FLOWS);\r
-                       for(var i=0;i<flows.length;i++){\r
-                               var execFlow = new org.argeo.slc.ria.execution.Flow();\r
-                               execFlow.setXmlNode(flows[i]);\r
-                               this.addExecutionFlow(execFlow);\r
+                               // Now parse Flows : to do AFTER specs\r
+                       var flows = org.argeo.ria.util.Element.selectNodes(xmlNode, appendRoot + this.self(arguments).XPATH_EXECUTION_FLOWS);\r
+                       if(flows){\r
+                               for(var i=0;i<flows.length;i++){\r
+                                       var execFlow = new org.argeo.slc.ria.execution.Flow();\r
+                                       execFlow.setXmlNode(flows[i]);\r
+                                       this.addExecutionFlow(execFlow);\r
+                               }\r
                        }\r
                }\r
                \r