1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.rundeck.api.parser;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.dom4j.Node;
20 import org.rundeck.api.domain.RundeckJob;
21
22
23
24
25
26
27 public class JobParser implements XmlNodeParser<RundeckJob> {
28
29 private String xpath;
30
31 public JobParser() {
32 super();
33 }
34
35
36
37
38 public JobParser(String xpath) {
39 super();
40 this.xpath = xpath;
41 }
42
43 @Override
44 public RundeckJob parseXmlNode(Node node) {
45 Node jobNode = xpath != null ? node.selectSingleNode(xpath) : node;
46
47 RundeckJob job = new RundeckJob();
48
49 job.setName(StringUtils.trimToNull(jobNode.valueOf("name")));
50 job.setDescription(StringUtils.trimToNull(jobNode.valueOf("description")));
51 job.setGroup(StringUtils.trimToNull(jobNode.valueOf("group")));
52
53
54 String jobId = null;
55 jobId = jobNode.valueOf("id");
56 if (StringUtils.isBlank(jobId)) {
57 jobId = jobNode.valueOf("@id");
58 }
59 job.setId(jobId);
60
61
62 Node contextNode = jobNode.selectSingleNode("context");
63 if (contextNode != null) {
64 job.setProject(StringUtils.trimToNull(contextNode.valueOf("project")));
65 } else {
66 job.setProject(StringUtils.trimToNull(jobNode.valueOf("project")));
67 }
68
69 return job;
70 }
71
72 }