Project

General

Profile

1
package eu.dnetlib.msro.workflows.graph;
2

    
3
import java.io.StringWriter;
4
import java.util.HashMap;
5
import java.util.Map;
6

    
7
import org.apache.commons.lang3.StringUtils;
8

    
9
/**
10
 * Created by michele on 19/11/15.
11
 */
12
public class GraphNode {
13

    
14
	public static final String SUCCESS_NODE = "success";
15

    
16
	private final String name;
17
	private final String type;
18
	private final boolean isStart;
19
	private final boolean isJoin;
20
	private final boolean isSucessNode;
21
	private final Map<String, Object> params;
22

    
23
	private GraphNode(final String name,
24
			final String type,
25
			final boolean isStart,
26
			final boolean isJoin,
27
			final boolean isSuccessNode,
28
			final Map<String, Object> params) {
29
		this.name = name;
30
		this.type = type;
31
		this.isStart = isStart;
32
		this.isJoin = isJoin;
33
		this.isSucessNode = isSuccessNode;
34
		this.params = params;
35
	}
36

    
37
	public static GraphNode newNode(final String name, final String type, final Map<String, Object> params) {
38
		return new GraphNode(name, type, false, false, false, params);
39
	}
40

    
41
	public static GraphNode newStartNode(final String name, final String type, final Map<String, Object> params) {
42
		return new GraphNode(name, type, true, false, false, params);
43
	}
44

    
45
	public static GraphNode newJoinNode(final String name, final String type, final Map<String, Object> params) {
46
		return new GraphNode(name, type, false, true, false, params);
47
	}
48

    
49
	public static GraphNode newSuccessNode() {
50
		return new GraphNode(SUCCESS_NODE, null, false, true, true, new HashMap<String, Object>());
51
	}
52

    
53
	public String getName() {
54
		return this.name;
55
	}
56

    
57
	public String getType() {
58
		return this.type;
59
	}
60

    
61
	public boolean isStart() {
62
		return this.isStart;
63
	}
64

    
65
	public boolean isJoin() {
66
		return this.isJoin;
67
	}
68

    
69
	public boolean isSucessNode() {
70
		return this.isSucessNode;
71
	}
72

    
73
	public Map<String, Object> getParams() {
74
		return this.params;
75
	}
76

    
77
	@Override
78
	public String toString() {
79
		final StringWriter sw = new StringWriter();
80
		sw.append("[ name: ");
81
		sw.append(this.name);
82
		if (StringUtils.isNotBlank(this.type)) {
83
			sw.append(", type: ");
84
			sw.append(this.type);
85
		}
86
		if (isStart()) {
87
			sw.append(" - isStart");
88
		}
89
		if (isJoin()) {
90
			sw.append(" - isJoin");
91
		}
92
		sw.append(" ]");
93
		return sw.toString();
94
	}
95
}
(4-4/4)