annotate src/share/tools/IdealGraphVisualizer/ControlFlowEditor/src/at/ssw/visualizer/cfg/model/LoopInfo.java @ 4503:c43083cc96e9

Fix router and layout actions. Now works also on multiple scenes and uses preferences. Also, use preferences for currently selected factory.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sun, 05 Feb 2012 04:34:57 +0100
parents aae5b3773e63
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4487
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1 package at.ssw.visualizer.cfg.model;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
2
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
3 import java.util.ArrayList;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
4 import java.util.List;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
5 import java.util.Set;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
6
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
7
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
8 public class LoopInfo {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
9 private CfgNode header;//the target node of the backedge
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
10 private int loopIndex; //index of the min cycleSet
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
11 private int loopDepth; //nested depth >=1
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
12 private LoopInfo parent=null;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
13 private Set<CfgNode> members;
4503
c43083cc96e9 Fix router and layout actions. Now works also on multiple scenes and uses preferences. Also, use preferences for currently selected factory.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4487
diff changeset
14 private List<CfgEdge> backEdges = new ArrayList<>();//dfs backEdge
4487
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
15
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
16 protected void setLoopDepth(int depth) {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
17 this.loopDepth=depth;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
18 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
19
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
20 protected void setLoopIndex(int loopIndex) {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
21 this.loopIndex = loopIndex;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
22 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
23
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
24 public int getLoopDepth() {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
25 return loopDepth;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
26 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
27
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
28 public Set<CfgNode> getMembers() {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
29 return members;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
30 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
31
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
32 protected void setMembers(Set<CfgNode> members) {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
33 this.members = members;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
34 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
35
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
36 public int getLoopIndex() {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
37 return loopIndex;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
38 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
39
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
40 protected void setParent(LoopInfo parent) {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
41 this.parent = parent;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
42 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
43
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
44 public LoopInfo getParent(){
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
45 return parent;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
46 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
47
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
48 public List<CfgEdge> getBackEdges() {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
49 return backEdges;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
50 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
51
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
52 public CfgNode getHeader() {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
53 return header;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
54 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
55
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
56 protected void setHeader(CfgNode header) {
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
57 this.header = header;
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
58 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
59
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
60 @Override
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
61 public String toString(){
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
62 return "Loop(" + header.toString()+ ")-->" + members.toString();
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
63 }
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
64
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
65
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
66
aae5b3773e63 Added CFG editor from c1visualizer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
67 }