public void visitClass()

in src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java [68:101]


    public void visitClass(String className, InputStream in) {
        try {
            byte[] byteCode = toByteArray(in);

            if (excludedClasses.isMatch(className)) {
                return;
            }

            ClassReader reader = new ClassReader(byteCode);

            final Set<String> constantPoolClassRefs = ConstantPoolParser.getConstantPoolClassReferences(byteCode);
            for (String string : constantPoolClassRefs) {
                resultCollector.addName(className, string);
            }

            AnnotationVisitor annotationVisitor = new DefaultAnnotationVisitor(resultCollector, className);
            SignatureVisitor signatureVisitor = new DefaultSignatureVisitor(resultCollector, className);
            FieldVisitor fieldVisitor = new DefaultFieldVisitor(annotationVisitor, resultCollector, className);
            MethodVisitor mv =
                    new DefaultMethodVisitor(annotationVisitor, signatureVisitor, resultCollector, className);
            ClassVisitor classVisitor = new DefaultClassVisitor(
                    signatureVisitor, annotationVisitor, fieldVisitor, mv, resultCollector, className);

            reader.accept(classVisitor, 0);
        } catch (IOException exception) {
            throw new UncheckedIOException(exception);
        } catch (IndexOutOfBoundsException e) {
            // some bug inside ASM causes an IOB exception.
            // this happens when the class isn't valid.
            throw new VisitClassException("Unable to process: " + className, e);
        } catch (IllegalArgumentException e) {
            throw new VisitClassException("Byte code of '" + className + "' is corrupt", e);
        }
    }