EmptyVisitor.java
001 package gate.util.asm.commons;
002 
003 import gate.util.asm.AnnotationVisitor;
004 import gate.util.asm.ClassVisitor;
005 import gate.util.asm.FieldVisitor;
006 import gate.util.asm.Label;
007 import gate.util.asm.MethodVisitor;
008 import gate.util.asm.Opcodes;
009 import gate.util.asm.TypePath;
010 
011 public class EmptyVisitor extends ClassVisitor {
012 
013   AnnotationVisitor av = new AnnotationVisitor(Opcodes.ASM5) {
014 
015       @Override
016       public AnnotationVisitor visitAnnotation(String name, String desc) {
017           return this;
018       }
019 
020       @Override
021       public AnnotationVisitor visitArray(String name) {
022           return this;
023       }
024   };
025 
026   public EmptyVisitor() {
027       super(Opcodes.ASM5);
028   }
029 
030   @Override
031   public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
032       return av;
033   }
034 
035   @Override
036   public AnnotationVisitor visitTypeAnnotation(int typeRef,
037           TypePath typePath, String desc, boolean visible) {
038       return av;
039   }
040 
041   @Override
042   public FieldVisitor visitField(int access, String name, String desc,
043           String signature, Object value) {
044       return new FieldVisitor(Opcodes.ASM5) {
045 
046           @Override
047           public AnnotationVisitor visitAnnotation(String desc,
048                   boolean visible) {
049               return av;
050           }
051 
052           @Override
053           public AnnotationVisitor visitTypeAnnotation(int typeRef,
054                   TypePath typePath, String desc, boolean visible) {
055               return av;
056           }
057       };
058   }
059 
060   @Override
061   public MethodVisitor visitMethod(int access, String name, String desc,
062           String signature, String[] exceptions) {
063       return new MethodVisitor(Opcodes.ASM5) {
064 
065           @Override
066           public AnnotationVisitor visitAnnotationDefault() {
067               return av;
068           }
069 
070           @Override
071           public AnnotationVisitor visitAnnotation(String desc,
072                   boolean visible) {
073               return av;
074           }
075 
076           @Override
077           public AnnotationVisitor visitTypeAnnotation(int typeRef,
078                   TypePath typePath, String desc, boolean visible) {
079               return av;
080           }
081 
082           @Override
083           public AnnotationVisitor visitParameterAnnotation(
084                   int parameter, String desc, boolean visible) {
085               return av;
086           }
087 
088           @Override
089           public AnnotationVisitor visitInsnAnnotation(int typeRef,
090                   TypePath typePath, String desc, boolean visible) {
091               return av;
092           }
093 
094           @Override
095           public AnnotationVisitor visitTryCatchAnnotation(int typeRef,
096                   TypePath typePath, String desc, boolean visible) {
097               return av;
098           }
099 
100           @Override
101           public AnnotationVisitor visitLocalVariableAnnotation(
102                   int typeRef, TypePath typePath, Label[] start,
103                   Label[] end, int[] index, String desc, boolean visible) {
104               return av;
105           }
106       };
107   }
108 }