1 19 20 package soot.javaToJimple; 21 import java.util.*; 22 23 public class NestedClassListBuilder extends polyglot.visit.NodeVisitor { 24 25 private ArrayList classDeclsList; 26 private ArrayList anonClassBodyList; 27 private ArrayList nestedUsedList; 28 29 public ArrayList getClassDeclsList() { 30 return classDeclsList; 31 } 32 33 public ArrayList getAnonClassBodyList() { 34 return anonClassBodyList; 35 } 36 37 public ArrayList getNestedUsedList() { 38 return nestedUsedList; 39 } 40 41 public NestedClassListBuilder(){ 42 classDeclsList = new ArrayList(); 43 anonClassBodyList = new ArrayList(); 44 nestedUsedList = new ArrayList(); 45 } 46 47 public polyglot.visit.NodeVisitor enter(polyglot.ast.Node parent, polyglot.ast.Node n) { 48 49 if (n instanceof polyglot.ast.New) { 50 51 if ((((polyglot.ast.New)n).anonType() != null) && (((polyglot.ast.New)n).body() != null)){ 52 anonClassBodyList.add(n); 53 } 54 else if (((polyglot.types.ClassType)((polyglot.ast.New)n).objectType().type()).isNested()){ 55 nestedUsedList.add(n); 56 } 57 } 58 if (n instanceof polyglot.ast.ClassDecl) { 59 60 if (((polyglot.types.ClassType)((polyglot.ast.ClassDecl)n).type()).isNested()){ 61 classDeclsList.add(n); 62 } 63 } 64 return enter(n); 65 } 66 } 67 | Popular Tags |