package net.sf.fjep.autojar; import java.util.HashSet; import java.util.Set; import org.apache.bcel.classfile.ConstantClass; import org.apache.bcel.classfile.EmptyVisitor; import org.apache.bcel.classfile.JavaClass; public class ClassVisitor extends EmptyVisitor { protected JavaClass javaClass; protected Set refClasses; ClassVisitor(JavaClass javaClass) { this.javaClass = javaClass; refClasses = new HashSet(); } public void visitConstantClass(ConstantClass constClass) { String cstr = javaClass.getConstantPool().getConstant(constClass.getNameIndex()).toString(); int ia = cstr.indexOf('"'); int ie = cstr.lastIndexOf('"'); String name = cstr.substring(ia + 1, ie); // skip arrays if (name.startsWith("[")) return; refClasses.add(name); } public String[] getRefClasses() { String[] result = (String[]) refClasses.toArray(new String[refClasses.size()]); return result; } }