| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'cfg-to-paths/src/Node.java')
| -rw-r--r-- | cfg-to-paths/src/Node.java | 73 |
1 files changed, 53 insertions, 20 deletions
diff --git a/cfg-to-paths/src/Node.java b/cfg-to-paths/src/Node.java index 5f82f64..3b6f2c1 100644 --- a/cfg-to-paths/src/Node.java +++ b/cfg-to-paths/src/Node.java @@ -2,33 +2,14 @@ import java.util.*; public class Node { + /** Static *****************************************************************/ private static final Map<String, Node> NODE_FROM_STRING; - private final Collection<Node> next_nodes; - - private final String name; static { NODE_FROM_STRING = new HashMap<String, Node>(); } - private Node (final String name) - { - this.name = name; - next_nodes = new ArrayList<Node>(); - } - - public Collection<Node> next_nodes () - { - return next_nodes; - } - - @Override - public String toString () - { - return name; - } - public static Node get_node (final String s) { return NODE_FROM_STRING.get(s); @@ -44,6 +25,24 @@ public class Node return true; } + public static boolean handle_is_terminal (final String a) + { + Node n; + + n = NODE_FROM_STRING.get(a); + + if (n == (Node) null) + { + n = new Node(a); + + NODE_FROM_STRING.put(a, n); + } + + n.set_as_terminal(); + + return true; + } + public static boolean handle_connect_to (final String a, final String b) { final Node n_a, n_b; @@ -68,4 +67,38 @@ public class Node return true; } + + /** Non-Static *************************************************************/ + private final Collection<Node> next_nodes; + private final String name; + private boolean is_terminal; + + private Node (final String name) + { + this.name = name; + + next_nodes = new ArrayList<Node>(); + is_terminal = false; + } + + private void set_as_terminal () + { + is_terminal = true; + } + + public Collection<Node> next_nodes () + { + return next_nodes; + } + + public boolean is_terminal () + { + return is_terminal; + } + + @Override + public String toString () + { + return name; + } } |


