new ClassReader(ByteStreams.toByteArray(is)).accept(new DependencyClassVisitor(new DependencyAcceptor() { @Override public void accept(String className) {
private void addType(Type type) { if (type.getSort() == Type.ARRAY) { type = type.getElementType(); } if (type.getSort() == Type.OBJECT) { addClass(type.getInternalName()); } }
@Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { if (signature != null) { new SignatureReader(signature).acceptType(signatureVisitor); } else { addType(Type.getType(desc)); } return new FieldVisitor(Opcodes.ASM5) { @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (!visible) { return null; } addType(Type.getType(desc)); return annotationVisitor; } }; }
new SignatureReader(signature).accept(signatureVisitor); } else { addMethod(desc); addClasses(exceptions);
new SignatureReader(signature).accept(signatureVisitor); } else { addMethod(desc); addClasses(exceptions);
new ClassReader(ByteStreams.toByteArray(is)).accept(new DependencyClassVisitor(new DependencyAcceptor() { @Override public void accept(String className) {
@Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { if (signature != null) { new SignatureReader(signature).acceptType(signatureVisitor); } else { addType(Type.getType(desc)); } return new FieldVisitor(Opcodes.ASM5) { @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (!visible) { return null; } addType(Type.getType(desc)); return annotationVisitor; } }; }
@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); }
@Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (!visible) { return null; } addType(Type.getType(desc)); return annotationVisitor; }
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 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); } }
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); }
private void addClasses(String[] classes) { if (classes != null) { for (String clz : classes) { addClass(clz); } } }
@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); } }
private void addClasses(String[] classes) { if (classes != null) { for (String clz : classes) { addClass(clz); } } }