X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.webapp%2Fsrc%2Fmain%2Fwebapp%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2FSlcExecutionMessage.js;h=012ac49928bbc13f0f6e0449b01295a292858859;hb=f3b5fa3d8f79c21748ddc88e8ad5062f4a413369;hp=1ef1b5ae9af87218d202be7bbdb58ffe383c048f;hpb=ad362af53b227d1ed89e9b46f0fee5b23e400488;p=gpl%2Fargeo-slc.git
diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecutionMessage.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecutionMessage.js
index 1ef1b5ae9..012ac4992 100644
--- a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecutionMessage.js
+++ b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecutionMessage.js
@@ -3,9 +3,25 @@
*/
qx.Class.define("org.argeo.slc.ria.SlcExecutionMessage", {
extend : qx.core.Object,
+ /**
+ * New instance
+ * @param uuid {String} The Uuid of the message. If none is passed, one is generated.
+ */
construct : function(uuid){
this.base(arguments);
- this.setUuid(uuid);
+ if(uuid){
+ this.setUuid(uuid);
+ }else{
+ var s = [];
+ var itoh = '0123456789ABCDEF';
+ for (var i = 0; i <36; i++) s[i] = Math.floor(Math.random()*0x10);
+ s[14] = 4; // Set 4 high bits of time_high field to version
+ s[19] = (s[19] & 0x3) | 0x8; // Specify 2 high bits of clock sequence
+ for (var i = 0; i <36; i++) s[i] = itoh[s[i]];
+ s[8] = s[13] = s[18] = s[23] = '-';
+ this.setUuid(s.join('').toLowerCase());
+ }
+ this.setAttributes({});
},
properties : {
/**
@@ -42,16 +58,27 @@ qx.Class.define("org.argeo.slc.ria.SlcExecutionMessage", {
check : "String",
init : "user"
},
+ /**
+ * Date of the message. now() by default.
+ */
+ date : {
+ check : "String",
+ init : new Date().toString()
+ },
/**
* Additionnal attributes as map of key/values
*/
attributes : {
- check : "Map",
- init : {}
+ check : "Map"
}
},
members : {
+ /**
+ * Add a free attribute to the message
+ * @param attName {String} Name
+ * @param attValue {String} Value
+ */
addAttribute: function(attName, attValue){
var attr = this.getAttributes();
attr[attName] = attValue;
@@ -64,21 +91,41 @@ qx.Class.define("org.argeo.slc.ria.SlcExecutionMessage", {
*/
toXml : function (){
var builder = new qx.util.StringBuilder();
- builder.add('');
- builder.add(''+this.getStatus()+'');
- builder.add(''+this.getType()+'');
- builder.add(''+this.getHost()+'');
- builder.add(''+this.getUser()+'');
+ builder.add('');
+ builder.add(''+this.getStatus()+'');
+ builder.add(''+this.getType()+'');
+ builder.add(''+this.getHost()+'');
+ builder.add(''+this.getUser()+'');
var attr = this.getAttributes();
if(qx.lang.Object.getLength(attr)){
- builder.add('');
+ builder.add('');
for(var key in attr){
- builder.add(''+attr[key]+'');
+ builder.add(''+attr[key]+'');
}
- builder.add('');
+ builder.add('');
}
- builder.add('');
+ builder.add('');
return builder.get();
+ },
+
+ /**
+ * Parse an XML answer and fill the object with it.
+ * @param slcExecXml {String} An slcExecMessage mapped in XML.
+ */
+ fromXml : function(slcExecXml){
+ var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};
+ this.setStatus(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:status", NSMap));
+ this.setType(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:type", NSMap));
+ this.setHost(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:host", NSMap));
+ this.setUser(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:user", NSMap));
+ var attributes = org.argeo.ria.util.Element.selectNodes(slcExecXml, "slc:attribute", NSMap);
+ for(var i=0;i