
org.rundeck.api.parser.WorkflowStepStateParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rundeck-api-java-client Show documentation
Show all versions of rundeck-api-java-client Show documentation
Java client for the Rundeck REST API
package org.rundeck.api.parser;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Node;
import org.rundeck.api.domain.WorkflowStepContextState;
import org.rundeck.api.domain.WorkflowStepState;
import java.util.HashMap;
/**
* $INTERFACE is ... User: greg Date: 1/17/14 Time: 12:09 PM
*/
public class WorkflowStepStateParser extends BaseXpathParser {
@Override
public WorkflowStepState parse(final Node targetNode) {
final WorkflowStepState state = new WorkflowStepState();
BaseStateParser.parseBaseState(targetNode, state);
state.setStepContextId(StringUtils.trimToNull(targetNode.valueOf("@stepctx")));
state.setStepNum(Integer.valueOf(targetNode.valueOf("@id")));
state.setNodeStep(Boolean.valueOf(StringUtils.trimToNull(targetNode.valueOf("nodeStep"))));
if (Boolean.valueOf(StringUtils.trimToNull(targetNode.valueOf("hasSubworkflow")))) {
//parse sub workflow
state.setSubWorkflow(new WorkflowStateParser("workflow").parseXmlNode(targetNode));
}
if (Boolean.valueOf(StringUtils.trimToNull(targetNode.valueOf("nodeStep")))) {
//node states
final HashMap nodeStates = new HashMap();
for (final Object o : targetNode.selectNodes("nodeStates/nodeState")) {
final Node nodeStateNode = (Node) o;
final String nodeName = StringUtils.trimToNull(nodeStateNode.valueOf("@name"));
if (null != nodeName) {
nodeStates.put(nodeName, new WorkflowStepContextStateParser(state).parseXmlNode(nodeStateNode));
}
}
state.setNodeStates(nodeStates);
}
return state;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy