17
17
package boa .graphs .cfg ;
18
18
19
19
import java .util .HashMap ;
20
- import java .util .HashSet ;
20
+ import java .util .LinkedHashSet ;
21
21
22
22
import boa .types .Ast .Expression ;
23
23
import boa .types .Ast .Statement ;
@@ -41,7 +41,7 @@ public class CFGNode implements Comparable<CFGNode> {
41
41
private int objectNameId ;
42
42
private int classNameId ;
43
43
private int numOfParameters = 0 ;
44
- private HashSet <Integer > parameters ;
44
+ private LinkedHashSet <Integer > parameters ;
45
45
private int kind = TYPE_OTHER ;
46
46
private String pid ;
47
47
private Statement stmt ;
@@ -52,13 +52,13 @@ public class CFGNode implements Comparable<CFGNode> {
52
52
public static HashMap <String , Integer > idOfLabel = new HashMap <String , Integer >();
53
53
public static HashMap <Integer , String > labelOfID = new HashMap <Integer , String >();
54
54
55
- public HashSet <CFGEdge > inEdges = new HashSet <CFGEdge >();
56
- public HashSet <CFGEdge > outEdges = new HashSet <CFGEdge >();
55
+ public LinkedHashSet <CFGEdge > inEdges = new LinkedHashSet <CFGEdge >();
56
+ public LinkedHashSet <CFGEdge > outEdges = new LinkedHashSet <CFGEdge >();
57
57
58
58
public java .util .ArrayList <CFGNode > predecessors = new java .util .ArrayList <CFGNode >();
59
59
public java .util .ArrayList <CFGNode > successors = new java .util .ArrayList <CFGNode >();
60
60
61
- public HashSet <String > useVariables = new HashSet <String >();
61
+ public LinkedHashSet <String > useVariables = new LinkedHashSet <String >();
62
62
public String defVariables ;
63
63
64
64
@ Override
@@ -84,7 +84,7 @@ public CFGNode(String methodName, int kind, String className,
84
84
}
85
85
86
86
public CFGNode (String methodName , int kind , String className ,
87
- String objectName , int numOfParameters , HashSet <Integer > datas ) {
87
+ String objectName , int numOfParameters , LinkedHashSet <Integer > datas ) {
88
88
this .id = ++numOfNodes ;
89
89
this .methodId = convertLabel (methodName );
90
90
this .kind = kind ;
@@ -96,7 +96,7 @@ public CFGNode(String methodName, int kind, String className,
96
96
}
97
97
98
98
this .objectNameId = convertLabel (objectName );
99
- this .parameters = new HashSet <Integer >(datas );
99
+ this .parameters = new LinkedHashSet <Integer >(datas );
100
100
this .numOfParameters = numOfParameters ;
101
101
}
102
102
@@ -114,8 +114,8 @@ public Statement getStmt() {
114
114
return this .stmt ;
115
115
}
116
116
117
- public HashSet <String > getDefUse () {
118
- HashSet <String > defUse = new HashSet <String >(useVariables );
117
+ public LinkedHashSet <String > getDefUse () {
118
+ LinkedHashSet <String > defUse = new LinkedHashSet <String >(useVariables );
119
119
defUse .add (defVariables );
120
120
return defUse ;
121
121
}
@@ -182,15 +182,15 @@ public int getNumOfParameters() {
182
182
return numOfParameters ;
183
183
}
184
184
185
- public void setParameters (HashSet <Integer > parameters ) {
185
+ public void setParameters (LinkedHashSet <Integer > parameters ) {
186
186
this .parameters = parameters ;
187
187
}
188
188
189
- public HashSet <Integer > getParameters () {
189
+ public LinkedHashSet <Integer > getParameters () {
190
190
return parameters ;
191
191
}
192
192
193
- public void setUseVariables (HashSet <String > useVariables ) {
193
+ public void setUseVariables (LinkedHashSet <String > useVariables ) {
194
194
this .useVariables = useVariables ;
195
195
}
196
196
@@ -214,7 +214,7 @@ public String getClassName() {
214
214
return labelOfID .get (classNameId );
215
215
}
216
216
217
- public HashSet <String > getUseVariables () {
217
+ public LinkedHashSet <String > getUseVariables () {
218
218
return useVariables ;
219
219
}
220
220
@@ -230,11 +230,11 @@ public boolean hasFalseBranch() {
230
230
return false ;
231
231
}
232
232
233
- public HashSet <CFGEdge > getInEdges () {
233
+ public LinkedHashSet <CFGEdge > getInEdges () {
234
234
return inEdges ;
235
235
}
236
236
237
- public HashSet <CFGEdge > getOutEdges () {
237
+ public LinkedHashSet <CFGEdge > getOutEdges () {
238
238
return outEdges ;
239
239
}
240
240
@@ -255,7 +255,7 @@ public void setSuccessors(java.util.ArrayList<CFGNode> successors) {
255
255
}
256
256
257
257
public java .util .ArrayList <CFGNode > getInNodes () {
258
- HashSet <CFGNode > nodes = new HashSet <CFGNode >();
258
+ LinkedHashSet <CFGNode > nodes = new LinkedHashSet <CFGNode >();
259
259
for (CFGEdge e : inEdges )
260
260
nodes .add (e .getSrc ());
261
261
java .util .ArrayList <CFGNode > pred = new java .util .ArrayList <CFGNode >(nodes );
@@ -264,7 +264,7 @@ public java.util.ArrayList<CFGNode> getInNodes() {
264
264
}
265
265
266
266
public java .util .ArrayList <CFGNode > getOutNodes () {
267
- HashSet <CFGNode > nodes = new HashSet <CFGNode >();
267
+ LinkedHashSet <CFGNode > nodes = new LinkedHashSet <CFGNode >();
268
268
for (CFGEdge e : outEdges )
269
269
nodes .add (e .getDest ());
270
270
java .util .ArrayList <CFGNode > succ = new java .util .ArrayList <CFGNode >(nodes );
@@ -377,8 +377,8 @@ public String processDef() {
377
377
return defVar ;
378
378
}
379
379
380
- public HashSet <String > processUse () {
381
- HashSet <String > useVar = new HashSet <String >();
380
+ public LinkedHashSet <String > processUse () {
381
+ LinkedHashSet <String > useVar = new LinkedHashSet <String >();
382
382
if (this .expr !=null ) {
383
383
if (this .expr .getKind ().toString ().equals ("ASSIGN" )) {
384
384
traverseExpr (useVar , this .rhs );
@@ -390,7 +390,7 @@ public HashSet<String> processUse() {
390
390
return useVar ;
391
391
}
392
392
393
- public static void traverseExpr (HashSet <String > useVar , final boa .types .Ast .Expression expr ) {
393
+ public static void traverseExpr (LinkedHashSet <String > useVar , final boa .types .Ast .Expression expr ) {
394
394
if (expr .hasVariable ()) {
395
395
if (expr .getExpressionsList ().size ()!=0 ) {
396
396
useVar .add ("this" );
@@ -416,7 +416,7 @@ public static void traverseExpr(HashSet<String> useVar, final boa.types.Ast.Expr
416
416
}
417
417
}
418
418
419
- public static void traverseVarDecls (HashSet <String > useVar , final boa .types .Ast .Variable vardecls ) {
419
+ public static void traverseVarDecls (LinkedHashSet <String > useVar , final boa .types .Ast .Variable vardecls ) {
420
420
if (vardecls .hasInitializer ()) {
421
421
traverseExpr (useVar , vardecls .getInitializer ());
422
422
}
0 commit comments