Java程序  |  349行  |  10.82 KB

package annotations.util;

import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.Handle;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.TypeAnnotationVisitor;
import org.objectweb.asm.TypePath;

import com.sun.tools.javac.code.TypeAnnotationPosition.TypePathEntry;

public class AbstractClassVisitor implements ClassVisitor {
  @Override
  public TypeAnnotationVisitor visitTypeAnnotation(String desc,
      boolean visible, boolean inCode) {
    return new TypeAnnotationVisitor() {
      @Override
      public void visit(String name, Object value) {}
      @Override
      public void visitEnum(String name, String desc, String value) {}
      @Override
      public AnnotationVisitor visitAnnotation(String name,
          String desc) {
        return null;
      }
      @Override
      public AnnotationVisitor visitArray(String name) {
        return null;
      }
      @Override
      public void visitEnd() {}
      @Override
      public void visitXTargetType(int target_type) {}
      @Override
      public void visitXOffset(int offset) {}
      @Override
      public void visitXLocationLength(int location_length) {}
      @Override
      public void visitXLocation(TypePathEntry location) {}
      @Override
      public void visitXNumEntries(int num_entries) {}
      @Override
      public void visitXStartPc(int start_pc) {}
      @Override
      public void visitXLength(int length) {}
      @Override
      public void visitXIndex(int index) {}
      @Override
      public void visitXParamIndex(int param_index) {}
      @Override
      public void visitXBoundIndex(int bound_index) {}
      @Override
      public void visitXTypeIndex(int type_index) {}
      @Override
      public void visitXExceptionIndex(int exception_index) {}
      @Override
      public void visitXNameAndArgsSize() {}
    };
  }

  @Override
  public void visit(int version, int access, String name,
      String signature, String superName, String[] interfaces) {
  }

  @Override
  public void visitSource(String source, String debug) {}

  @Override
  public void visitOuterClass(String owner, String name, String desc) {}

  @Override
  public AnnotationVisitor visitAnnotation(String desc,
      boolean visible) {
    return new AnnotationVisitor() {
      @Override
      public void visit(String name, Object value) {}
      @Override
      public void visitEnum(String name, String desc, String value) {}
      @Override
      public AnnotationVisitor visitAnnotation(String name,
          String desc) {
        return null;
      }
      @Override
      public AnnotationVisitor visitArray(String name) {
        return null;
      }
      @Override
      public void visitEnd() {}
    };
  }

  @Override
  public void visitAttribute(Attribute attr) {}

  @Override
  public void visitInnerClass(String name,
      String outerName, String innerName, int access) {
  }

  @Override
  public FieldVisitor visitField(int access, String name, String desc,
      String signature, Object value) {
    return new FieldVisitor() {
      @Override
      public TypeAnnotationVisitor visitTypeAnnotation(String desc,
          boolean visible, boolean inCode) {
        return new TypeAnnotationVisitor() {
          @Override
          public void visit(String name, Object value) {}
          @Override
          public void visitEnum(String name, String desc, String value) {}
          @Override
          public AnnotationVisitor visitAnnotation(String name,
              String desc) {
            return null;
          }
          @Override
          public AnnotationVisitor visitArray(String name) {
            return null;
          }
          @Override
          public void visitEnd() {}
          @Override
          public void visitXTargetType(int target_type) {}
          @Override
          public void visitXOffset(int offset) {}
          @Override
          public void visitXLocationLength(int location_length) {}
          @Override
          public void visitXLocation(TypePathEntry location) {}
          @Override
          public void visitXNumEntries(int num_entries) {}
          @Override
          public void visitXStartPc(int start_pc) {}
          @Override
          public void visitXLength(int length) {}
          @Override
          public void visitXIndex(int index) {}
          @Override
          public void visitXParamIndex(int param_index) {}
          @Override
          public void visitXBoundIndex(int bound_index) {}
          @Override
          public void visitXTypeIndex(int type_index) {}
          @Override
          public void visitXExceptionIndex(int exception_index) {}
          @Override
          public void visitXNameAndArgsSize() {}
        };
      }
      @Override
      public AnnotationVisitor visitAnnotation(String desc,
          boolean visible) {
        return null;
      }
      @Override
      public void visitAttribute(Attribute attr) {}
      @Override
      public void visitEnd() {}
    };
  }

  @Override
  public MethodVisitor visitMethod(int access, String name, String desc,
      String signature, String[] exceptions) {
    return new MethodVisitor() {
      @Override
      public TypeAnnotationVisitor visitTypeAnnotation(String desc,
          boolean visible, boolean inCode) {
        return new TypeAnnotationVisitor() {
          @Override
          public void visit(String name, Object value) {}
          @Override
          public void visitEnum(String name, String desc, String value) {}
          @Override
          public AnnotationVisitor visitAnnotation(String name,
              String desc) {
            return null;
          }
          @Override
          public AnnotationVisitor visitArray(String name) {
            return null;
          }
          @Override
          public void visitEnd() {}
          @Override
          public void visitXTargetType(int target_type) {}
          @Override
          public void visitXOffset(int offset) {}
          @Override
          public void visitXLocationLength(int location_length) {}
          @Override
          public void visitXLocation(TypePathEntry location) {}
          @Override
          public void visitXNumEntries(int num_entries) {}
          @Override
          public void visitXStartPc(int start_pc) {}
          @Override
          public void visitXLength(int length) {}
          @Override
          public void visitXIndex(int index) {}
          @Override
          public void visitXParamIndex(int param_index) {}
          @Override
          public void visitXBoundIndex(int bound_index) {}
          @Override
          public void visitXTypeIndex(int type_index) {}
          @Override
          public void visitXExceptionIndex(int exception_index) {}
          @Override
          public void visitXNameAndArgsSize() {}
        };
      }
      @Override
      public AnnotationVisitor visitAnnotationDefault() {
        return new AnnotationVisitor() {
          @Override
          public void visit(String name, Object value) {}
          @Override
          public void visitEnum(String name, String desc, String value) {}
          @Override
          public AnnotationVisitor visitAnnotation(String name,
              String desc) {
            return null;
          }
          @Override
          public AnnotationVisitor visitArray(String name) {
            return null;
          }
          @Override
          public void visitEnd() {}
        };
      }
      @Override
      public AnnotationVisitor visitAnnotation(String desc,
          boolean visible) {
        return null;
      }
      @Override
      public AnnotationVisitor visitParameterAnnotation(int parameter,
          String desc, boolean visible) {
        return new AnnotationVisitor() {
          @Override
          public void visit(String name, Object value) {}
          @Override
          public void visitEnum(String name, String desc, String value) {}
          @Override
          public AnnotationVisitor visitAnnotation(String name,
              String desc) {
            return null;
          }
          @Override
          public AnnotationVisitor visitArray(String name) {
            return null;
          }
          @Override
          public void visitEnd() {}
        };
      }
      @Override
      public void visitAttribute(Attribute attr) {}
      @Override
      public void visitCode() {}
      @Override
      public void visitInsn(int opcode) {}
      @Override
      public void visitIntInsn(int opcode, int operand) {}
      @Override
      public void visitVarInsn(int opcode, int var) {}
      @Override
      public void visitTypeInsn(int opcode, String desc) {}
      @Override
      public void visitFieldInsn(int opcode, String owner, String name,
          String desc) {
      }
      @Override
      public void visitMethodInsn(int opcode, String owner, String name,
          String desc) {
      }
      @Override
      public void visitInvokeDynamicInsn(String name, String desc, Handle bsm,
          Object... bsmArgs) {
      }
      @Override
      public void visitJumpInsn(int opcode, Label label) {
      }
      @Override
      public void visitLabel(Label label) {}
      @Override
      public void visitLdcInsn(Object cst) {}
      @Override
      public void visitIincInsn(int var, int increment) {}
      @Override
      public void visitTableSwitchInsn(int min, int max, Label dflt,
          Label[] labels) {
      }
      @Override
      public void visitLookupSwitchInsn(Label dflt, int[] keys,
          Label[] labels) {
      }
      @Override
      public void visitMultiANewArrayInsn(String desc, int dims) {}
      @Override
      public AnnotationVisitor visitInsnAnnotation(int typeRef,
          TypePath typePath, String desc, boolean visible) {
        return new AnnotationVisitor() {
          @Override
          public void visit(String name, Object value) {}
          @Override
          public void visitEnum(String name, String desc, String value) {}
          @Override
          public AnnotationVisitor visitAnnotation(String name,
              String desc) {
            return null;
          }
          @Override
          public AnnotationVisitor visitArray(String name) {
            return null;
          }
          @Override
          public void visitEnd() {}
        };
      }
      @Override
      public void visitTryCatchBlock(Label start, Label end,
          Label handler, String type) {
      }
      @Override
      public void visitLocalVariable(String name, String desc,
          String signature, Label start, Label end, int index) {
      }
      @Override
      public void visitLineNumber(int line, Label start) {}
      @Override
      public void visitMaxs(int maxStack, int maxLocals) {}
      @Override
      public void visitEnd() {}
    };
  }

  @Override
  public void visitEnd() {}
}