001    package org.shiftone.jrat.inject.bytecode.asm;
002    
003    
004    import org.objectweb.asm.*;
005    import org.shiftone.jrat.util.log.Logger;
006    
007    
008    public class DebugClassVisitor extends ClassAdapter {
009    
010        private static final Logger LOG = Logger.getLogger(DebugClassVisitor.class);
011    
012        public DebugClassVisitor(final ClassVisitor cv) {
013            super(cv);
014        }
015    
016    
017        public void visit(final int version, final int access, final String name, final String signature,
018                          final String superName, final String[] interfaces) {
019    
020            LOG.info("visit " + version + ", " + access + ", " + name + ", " + signature + ", " + superName + ", "
021                    + interfaces);
022            super.visit(version, access, name, signature, superName, interfaces);
023        }
024    
025    
026        public void visitSource(final String source, final String debug) {
027            LOG.info("visitSource " + source + " " + debug);
028            super.visitSource(source, debug);
029        }
030    
031    
032        public void visitOuterClass(final String owner, final String name, final String desc) {
033            LOG.info("visitOuterClass " + owner + " " + name + " " + desc);
034            super.visitOuterClass(owner, name, desc);
035        }
036    
037    
038        public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
039            return super.visitAnnotation(desc, visible);
040        }
041    
042    
043        public void visitAttribute(final Attribute attr) {
044            LOG.info("visitAttribute " + attr);
045            super.visitAttribute(attr);
046        }
047    
048    
049        public void visitInnerClass(final String name, final String outerName, final String innerName, final int access) {
050            LOG.info("visitInnerClass " + name + " " + outerName + " " + innerName + " " + access);
051            super.visitInnerClass(name, outerName, innerName, access);
052        }
053    
054    
055        public FieldVisitor visitField(final int access, final String name, final String desc, final String signature,
056                                       final Object value) {
057    
058            LOG.info("visitField " + access + " " + name + " " + desc + " " + signature + " " + value);
059    
060            return super.visitField(access, name, desc, signature, value);
061        }
062    
063    
064        public MethodVisitor visitMethod(final int access, final String name, final String desc, final String signature,
065                                         final String[] exceptions) {
066    
067            LOG.info("visitMethod " + access + " " + name + " " + desc + " " + signature + " " + exceptions);
068    
069            return super.visitMethod(access, name, desc, signature, exceptions);
070        }
071    
072    
073        public void visitEnd() {
074            LOG.info("visitEnd");
075            super.visitEnd();
076        }
077    }