private void addClasses(String[] classes) { if (classes != null) { for (String clz : classes) { addClass(clz); } } }
public DependencyClassVisitor(DependencyAcceptor acceptor) { super(Opcodes.ASM5); this.acceptor = acceptor; this.signatureVisitor = createSignatureVisitor(); this.annotationVisitor = createAnnotationVisitor(); }
protected T createInstance(String className) throws ClassNotFoundException { @SuppressWarnings("unchecked") Class<T> clz = (Class<T>) Class.forName(className); return Instances.newInstance(clz); }
public static void findClassDependencies(ClassLoader classLoader, ClassAcceptor acceptor, String...classesToResolve) throws IOException { findClassDependencies(classLoader, acceptor, ImmutableList.copyOf(classesToResolve)); }
@Override public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { addClass(name); if (signature != null) { new SignatureReader(signature).accept(signatureVisitor); } else { addClass(superName); addClasses(interfaces); } }
@Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (!visible) { return null; } addType(Type.getType(desc)); return annotationVisitor; }
protected T createInstance(String className) throws ClassNotFoundException { Class clz = Class.forName(className); return (T) Instances.newInstance(clz); }
public DependencyClassVisitor(DependencyAcceptor acceptor) { super(Opcodes.ASM5); this.acceptor = acceptor; this.signatureVisitor = createSignatureVisitor(); this.annotationVisitor = createAnnotationVisitor(); }
@Override public void visitOuterClass(String owner, String name, String desc) { addClass(owner); }
@Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (!visible) { return null; } addType(Type.getType(desc)); return annotationVisitor; }
protected T createInstance(String className) throws ClassNotFoundException { @SuppressWarnings("unchecked") Class<T> clz = (Class<T>) Class.forName(className); return Instances.newInstance(clz); }
@Override public void visitOuterClass(String owner, String name, String desc) { addClass(owner); }
protected T createInstance(String className) throws ClassNotFoundException { Class clz = Class.forName(className); return (T) Instances.newInstance(clz); }
private void addClasses(String[] classes) { if (classes != null) { for (String clz : classes) { addClass(clz); } } }
protected T createInstance(String className) throws ClassNotFoundException { Class clz = Class.forName(className); return (T) Instances.newInstance(clz); }
@Override public void visitInnerClass(String name, String outerName, String innerName, int access) { addClass(name); }
@Override public void visitInnerClass(String name, String outerName, String innerName, int access) { addClass(name); }
private void addType(Type type) { if (type.getSort() == Type.ARRAY) { type = type.getElementType(); } if (type.getSort() == Type.OBJECT) { addClass(type.getInternalName()); } }