110 lines
2.5 KiB
Java
110 lines
2.5 KiB
Java
package eu.dnetlib.manager.wf.workflows.graph;
|
|
|
|
import java.io.StringWriter;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
public class GraphNode {
|
|
|
|
public static final String SUCCESS_NODE = "success";
|
|
|
|
private final String name;
|
|
private final String type;
|
|
private final boolean isStart;
|
|
private final boolean isJoin;
|
|
private final boolean isSucessNode;
|
|
private final Map<String, String> params;
|
|
private final Map<String, String> envParams;
|
|
|
|
private GraphNode(final String name,
|
|
final String type,
|
|
final boolean isStart,
|
|
final boolean isJoin,
|
|
final boolean isSuccessNode,
|
|
final Map<String, String> params,
|
|
final Map<String, String> envParams) {
|
|
this.name = name;
|
|
this.type = type;
|
|
this.isStart = isStart;
|
|
this.isJoin = isJoin;
|
|
this.isSucessNode = isSuccessNode;
|
|
this.params = params;
|
|
this.envParams = envParams;
|
|
}
|
|
|
|
public static GraphNode newNode(final String name,
|
|
final String type,
|
|
final Map<String, String> params,
|
|
final Map<String, String> envParams) {
|
|
return new GraphNode(name, type, false, false, false, params, envParams);
|
|
}
|
|
|
|
public static GraphNode newStartNode(final String name,
|
|
final String type,
|
|
final Map<String, String> params,
|
|
final Map<String, String> envParams) {
|
|
return new GraphNode(name, type, true, false, false, params, envParams);
|
|
}
|
|
|
|
public static GraphNode newJoinNode(final String name,
|
|
final String type,
|
|
final Map<String, String> params,
|
|
final Map<String, String> envParams) {
|
|
return new GraphNode(name, type, false, true, false, params, envParams);
|
|
}
|
|
|
|
public static GraphNode newSuccessNode() {
|
|
return new GraphNode(SUCCESS_NODE, null, false, true, true, new HashMap<>(), new HashMap<>());
|
|
}
|
|
|
|
public String getName() {
|
|
return this.name;
|
|
}
|
|
|
|
public String getType() {
|
|
return this.type;
|
|
}
|
|
|
|
public boolean isStart() {
|
|
return this.isStart;
|
|
}
|
|
|
|
public boolean isJoin() {
|
|
return this.isJoin;
|
|
}
|
|
|
|
public boolean isSucessNode() {
|
|
return this.isSucessNode;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
final StringWriter sw = new StringWriter();
|
|
sw.append("[ name: ");
|
|
sw.append(this.name);
|
|
if (StringUtils.isNotBlank(this.type)) {
|
|
sw.append(", type: ");
|
|
sw.append(this.type);
|
|
}
|
|
if (isStart()) {
|
|
sw.append(" - isStart");
|
|
}
|
|
if (isJoin()) {
|
|
sw.append(" - isJoin");
|
|
}
|
|
sw.append(" ]");
|
|
return sw.toString();
|
|
}
|
|
|
|
public Map<String, String> getParams() {
|
|
return this.params;
|
|
}
|
|
|
|
public Map<String, String> getEnvParams() {
|
|
return this.envParams;
|
|
}
|
|
|
|
}
|