1 19 20 25 26 27 28 package soot.tagkit; 29 30 31 import soot.*; 32 import java.util.*; 33 34 35 public class InnerClassTagAggregator extends SceneTransformer { 36 37 public InnerClassTagAggregator( Singletons.Global g ) {} 38 public static InnerClassTagAggregator v() { return G.v().soot_tagkit_InnerClassTagAggregator(); } 39 40 41 public String aggregatedName() 42 { 43 return "InnerClasses"; 44 } 45 46 public void internalTransform(String phaseName, Map options){ 47 Iterator it = Scene.v().getApplicationClasses().iterator(); 48 while (it.hasNext()){ 49 ArrayList list = new ArrayList(); 50 short length = 0; 51 short numInnerClasses = 0; 52 SootClass nextSc = (SootClass)it.next(); 53 Iterator tagsIt = nextSc.getTags().iterator(); 54 while (tagsIt.hasNext()){ 55 Tag t = (Tag)tagsIt.next(); 56 if (t instanceof InnerClassTag){ 57 list.add(t); 58 } 59 } 60 if (!list.isEmpty()){ 61 nextSc.addTag(new InnerClassAttribute(list)); 62 } 63 } 64 } 65 } 66 | Popular Tags |