Mercurial > hg > truffle
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 |
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 } |