package org.jf.dexlib.Interface; import java.io.FileNotFoundException; import java.util.Collections; import java.util.LinkedList; import java.util.List; import org.jf.dexlib.DexFile; import org.jf.dexlib.Code.Analysis.SyntheticAccessorResolver; import org.jf.dexlib.Code.Analysis.graphs.GraphDumper; /** * * @author Juergen Graf <juergen.graf@gmail.com> * */ public class DexProgram { private final List<DexClass> classes = new LinkedList<DexClass>(); private final SyntheticAccessorResolver synth; private final String name; public DexProgram(final String name, final DexFile file) { this(name, new SyntheticAccessorResolver(file)); } public DexProgram(final String name, final SyntheticAccessorResolver synth) { this.synth = synth; this.name = name; } public SyntheticAccessorResolver getSyntheticResolver() { return synth; } public List<DexClass> getClasses() { return Collections.unmodifiableList(classes); } public void addClass(final DexClass cls) { classes.add(cls); } public void dumpGraphs(final GraphDumper gDump) throws FileNotFoundException { for (final DexClass dexClass : classes) { dexClass.dumpGraphs(gDump); } } public String toString() { return "DexProgram(" + name +"): " + classes.size() + " classes"; } }