< prev index next >

src/java.base/share/classes/jdk/internal/org/objectweb/asm/util/CheckAnnotationAdapter.java

Print this page
rev 47452 : imported patch jdk-new-asmv6.patch


  61 import jdk.internal.org.objectweb.asm.AnnotationVisitor;
  62 import jdk.internal.org.objectweb.asm.Opcodes;
  63 import jdk.internal.org.objectweb.asm.Type;
  64 
  65 /**
  66  * An {@link AnnotationVisitor} that checks that its methods are properly used.
  67  *
  68  * @author Eric Bruneton
  69  */
  70 public class CheckAnnotationAdapter extends AnnotationVisitor {
  71 
  72     private final boolean named;
  73 
  74     private boolean end;
  75 
  76     public CheckAnnotationAdapter(final AnnotationVisitor av) {
  77         this(av, true);
  78     }
  79 
  80     CheckAnnotationAdapter(final AnnotationVisitor av, final boolean named) {
  81         super(Opcodes.ASM5, av);
  82         this.named = named;
  83     }
  84 
  85     @Override
  86     public void visit(final String name, final Object value) {
  87         checkEnd();
  88         checkName(name);
  89         if (!(value instanceof Byte || value instanceof Boolean
  90                 || value instanceof Character || value instanceof Short
  91                 || value instanceof Integer || value instanceof Long
  92                 || value instanceof Float || value instanceof Double
  93                 || value instanceof String || value instanceof Type
  94                 || value instanceof byte[] || value instanceof boolean[]
  95                 || value instanceof char[] || value instanceof short[]
  96                 || value instanceof int[] || value instanceof long[]
  97                 || value instanceof float[] || value instanceof double[])) {
  98             throw new IllegalArgumentException("Invalid annotation value");
  99         }
 100         if (value instanceof Type) {
 101             int sort = ((Type) value).getSort();




  61 import jdk.internal.org.objectweb.asm.AnnotationVisitor;
  62 import jdk.internal.org.objectweb.asm.Opcodes;
  63 import jdk.internal.org.objectweb.asm.Type;
  64 
  65 /**
  66  * An {@link AnnotationVisitor} that checks that its methods are properly used.
  67  *
  68  * @author Eric Bruneton
  69  */
  70 public class CheckAnnotationAdapter extends AnnotationVisitor {
  71 
  72     private final boolean named;
  73 
  74     private boolean end;
  75 
  76     public CheckAnnotationAdapter(final AnnotationVisitor av) {
  77         this(av, true);
  78     }
  79 
  80     CheckAnnotationAdapter(final AnnotationVisitor av, final boolean named) {
  81         super(Opcodes.ASM6, av);
  82         this.named = named;
  83     }
  84 
  85     @Override
  86     public void visit(final String name, final Object value) {
  87         checkEnd();
  88         checkName(name);
  89         if (!(value instanceof Byte || value instanceof Boolean
  90                 || value instanceof Character || value instanceof Short
  91                 || value instanceof Integer || value instanceof Long
  92                 || value instanceof Float || value instanceof Double
  93                 || value instanceof String || value instanceof Type
  94                 || value instanceof byte[] || value instanceof boolean[]
  95                 || value instanceof char[] || value instanceof short[]
  96                 || value instanceof int[] || value instanceof long[]
  97                 || value instanceof float[] || value instanceof double[])) {
  98             throw new IllegalArgumentException("Invalid annotation value");
  99         }
 100         if (value instanceof Type) {
 101             int sort = ((Type) value).getSort();


< prev index next >