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 extends BaseXpathParser<RundeckJob> {
28
29
30 public JobParser(final String xpath) {
31 super(xpath);
32 }
33
34 public JobParser() {
35
36 }
37
38 @Override
39 public RundeckJob parse(Node jobNode) {
40
41 RundeckJob job = new RundeckJob();
42
43 job.setName(StringUtils.trimToNull(jobNode.valueOf("name")));
44 job.setDescription(StringUtils.trimToNull(jobNode.valueOf("description")));
45 job.setGroup(StringUtils.trimToNull(jobNode.valueOf("group")));
46
47
48 String jobId = null;
49 jobId = jobNode.valueOf("id");
50 if (StringUtils.isBlank(jobId)) {
51 jobId = jobNode.valueOf("@id");
52 }
53 job.setId(jobId);
54
55 String averageDuration = StringUtils.trimToNull(jobNode.valueOf("@averageDuration"));
56 if (averageDuration != null) {
57 job.setAverageDuration(Long.valueOf(averageDuration));
58 }
59
60
61 Node contextNode = jobNode.selectSingleNode("context");
62 if (contextNode != null) {
63 job.setProject(StringUtils.trimToNull(contextNode.valueOf("project")));
64 } else {
65 job.setProject(StringUtils.trimToNull(jobNode.valueOf("project")));
66 }
67
68 return job;
69 }
70
71 }