]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/SlcExecutionMessage.js
Splitted the LauncherApplet into two different applets. The first one is a generic...
[gpl/argeo-slc.git] / org.argeo.slc.webapp / src / main / webapp / argeo-ria-lib / slc / class / org / argeo / slc / ria / SlcExecutionMessage.js
1 /**
2 * A generic JMS slcExecution message encapsulator.
3 */
4 qx.Class.define("org.argeo.slc.ria.SlcExecutionMessage", {
5 extend : qx.core.Object,
6 construct : function(uuid){
7 this.base(arguments);
8 this.setUuid(uuid);
9 },
10 properties : {
11 /**
12 * The unique id identifying the message
13 */
14 uuid : {
15 check : "String"
16 },
17 /**
18 * Execution status
19 */
20 status : {
21 check : "String",
22 init : "STARTED"
23 },
24 /**
25 * Execution type
26 */
27 type : {
28 check : "String",
29 init : "slcAnt"
30 },
31 /**
32 * Execution Host
33 */
34 host : {
35 check : "String",
36 init : "localhost"
37 },
38 /**
39 * Execution User
40 */
41 user : {
42 check : "String",
43 init : "user"
44 },
45 date : {
46 check : "String",
47 init : new Date().toString()
48 },
49 /**
50 * Additionnal attributes as map of key/values
51 */
52 attributes : {
53 check : "Map",
54 init : {}
55 }
56 },
57 members : {
58
59 addAttribute: function(attName, attValue){
60 var attr = this.getAttributes();
61 attr[attName] = attValue;
62 this.setAttributes(attr);
63 },
64 /**
65 * Build the xml formatted message body to send
66 *
67 * @return {String} The message content as Xml
68 */
69 toXml : function (){
70 var builder = new qx.util.StringBuilder();
71 builder.add('<slc:slc-execution xmlns:slc="http://argeo.org/projects/slc/schemas" uuid="'+this.getUuid()+'">');
72 builder.add('<slc:status>'+this.getStatus()+'</slc:status>');
73 builder.add('<slc:type>'+this.getType()+'</slc:type>');
74 builder.add('<slc:host>'+this.getHost()+'</slc:host>');
75 builder.add('<slc:user>'+this.getUser()+'</slc:user>');
76 var attr = this.getAttributes();
77 if(qx.lang.Object.getLength(attr)){
78 builder.add('<slc:attributes>');
79 for(var key in attr){
80 builder.add('<slc:attribute name="'+key+'">'+attr[key]+'</slc:attribute>');
81 }
82 builder.add('</slc:attributes>');
83 }
84 builder.add('</slc:slc-execution>');
85 return builder.get();
86 },
87
88 fromXml : function(slcExecXml){
89 var NSMap = {slc:"http://argeo.org/projects/slc/schemas"};
90 this.setStatus(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:status", NSMap));
91 this.setType(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:type", NSMap));
92 this.setHost(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:host", NSMap));
93 this.setUser(org.argeo.ria.util.Element.getSingleNodeText(slcExecXml, "slc:user", NSMap));
94 var attributes = org.argeo.ria.util.Element.selectNodes(slcExecXml, "slc:attribute", NSMap);
95 for(var i=0;i<attributes.length;i++){
96 this.addAttribute(attribute.getAttribute("name"), attribute.firstChild);
97 }
98 var stepsDates = org.argeo.ria.util.Element.selectNodes(slcExecXml, "slc:steps/slc:slc-execution-step/slc:begin", NSMap);
99 if(stepsDates.length){
100 this.setDate(org.argeo.ria.util.Element.getSingleNodeText(stepsDates[stepsDates.length-1], ".", NSMap));
101 }
102 }
103 }
104 });