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.RundeckAbort;
21 import org.rundeck.api.domain.RundeckExecution;
22 import org.rundeck.api.domain.RundeckAbort.AbortStatus;
23
24
25
26
27
28
29 public class AbortParser implements XmlNodeParser<RundeckAbort> {
30
31 private String xpath;
32
33 public AbortParser() {
34 super();
35 }
36
37
38
39
40 public AbortParser(String xpath) {
41 super();
42 this.xpath = xpath;
43 }
44
45 @Override
46 public RundeckAbort parseXmlNode(Node node) {
47 Node abortNode = xpath != null ? node.selectSingleNode(xpath) : node;
48
49 RundeckAbort abort = new RundeckAbort();
50
51 try {
52 abort.setStatus(AbortStatus.valueOf(StringUtils.upperCase(abortNode.valueOf("@status"))));
53 } catch (IllegalArgumentException e) {
54 }
55
56 Node execNode = abortNode.selectSingleNode("execution");
57 if (execNode != null) {
58 RundeckExecution execution = new ExecutionParser().parseXmlNode(execNode);
59 abort.setExecution(execution);
60 }
61
62 return abort;
63 }
64
65 }