check : "String",\r
init : ""\r
},\r
+ /**\r
+ * An optional path describing this flow\r
+ */\r
+ path : {\r
+ check : "String",\r
+ nullable : true\r
+ },\r
/**\r
* Name of the associated spec, to be found in the module \r
*/\r
executionSpec : {\r
check : "org.argeo.slc.ria.execution.Spec"\r
},\r
+ /**\r
+ * The values to init the ExecutionSpec\r
+ */\r
+ values : {\r
+ check : "Node"\r
+ },\r
/**\r
* Castor representation of the object \r
*/\r
},\r
\r
statics : {\r
+ /**\r
+ * Xpath to the name \r
+ */\r
XPATH_NAME : "@name",\r
+ /**\r
+ * XPath to the ExecutionSpec name\r
+ */\r
XPATH_EXEC_SPEC_NAME : "@executionSpec",\r
- XPATH_VALUES : "slc:values"\r
+ /**\r
+ * XPath to the values\r
+ */\r
+ XPATH_VALUES : "slc:values",\r
+ /**\r
+ * An optional hierarchical path\r
+ */\r
+ XPATH_PATH : "@path"\r
},\r
\r
- construct : function(){},\r
+ construct : function(){\r
+ this.base(arguments);\r
+ },\r
\r
members : { \r
/**\r
_applyXmlNode : function(xmlNode){\r
this.set({\r
name : org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_NAME),\r
+ path : org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_PATH),\r
executionSpecName : org.argeo.ria.util.Element.getSingleNodeText(xmlNode, this.self(arguments).XPATH_EXEC_SPEC_NAME)\r
});\r
- } \r
+ var values = org.argeo.ria.util.Element.selectNodes(xmlNode, this.self(arguments).XPATH_VALUES);\r
+ this.setValues(values[0]);\r
+ },\r
+ /**\r
+ * Get a given value inside the values map\r
+ * @param key {String} The key of the value \r
+ * @param specType {String} Expected type (currently "primitive" and "ref" are supported)\r
+ * @param specSubType {String} Expected subtype (depends on the type)\r
+ * @return {String} Value if it is set.\r
+ */\r
+ getValue: function(key, specType, specSubType){\r
+ var xpath;\r
+ if(specType == "primitive"){\r
+ xpath = 'slc:value[@key="'+key+'"]/slc:primitive-value[@type="'+specSubType+'"]';\r
+ }else if(specType == "ref"){\r
+ xpath = 'slc:value[@key="'+key+'"]/slc:ref-value/slc:label';\r
+ }\r
+ return org.argeo.ria.util.Element.getSingleNodeText(this.getValues(), xpath);\r
+ }\r
} \r
\r
});
\ No newline at end of file