org.python.core

## Class AnnotationReader

- java.lang.Object
- - org.objectweb.asm.commons.EmptyVisitor
  - - org.python.core.AnnotationReader

All Implemented Interfaces:
  org.objectweb.asm.AnnotationVisitor, org.objectweb.asm.ClassVisitor, org.objectweb.asm.FieldVisitor, org.objectweb.asm.MethodVisitor

    public class AnnotationReader
    extends org.objectweb.asm.commons.EmptyVisitor

This class reads a classfile from a byte array and pulls out the value of the class annotation for APIVersion, which can then be retrieved by a call to getVersion(). Hopefully the use of ClassReader in this implementation is not too expensive. I suspect it is not since EmptyVisitor is just a bag of empty methods so shouldn't cost too much. If it turns out to cost too much, we will want to implement a special purpose ClassReader that only reads out the APIVersion annotation I think.

### Constructor Summary

Constructors
Constructor and Description
`AnnotationReader(byte[] data)` Reads the classfile bytecode in data and to extract the version.

### Method Summary

All Methods Instance Methods Concrete Methods
`long` `getMTime()`
`int` `getVersion()`
`void` `visit(java.lang.String name, java.lang.Object value)`
`org.objectweb.asm.AnnotationVisitor` `visitAnnotation(java.lang.String desc, boolean visible)`

### Methods inherited from class org.objectweb.asm.commons.EmptyVisitor

`visit, visitAnnotation, visitAnnotationDefault, visitArray, visitAttribute, visitCode, visitEnd, visitEnum, visitField, visitFieldInsn, visitFrame, visitIincInsn, visitInnerClass, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethod, visitMethodInsn, visitMultiANewArrayInsn, visitOuterClass, visitParameterAnnotation, visitSource, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AnnotationReader

    public AnnotationReader(byte[] data)
                     throws java.io.IOException

Reads the classfile bytecode in data and to extract the version.

Throws:
  `java.io.IOException` - - if the classfile is malformed.

### Method Detail

#### visitAnnotation

    public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String desc,
                                                               boolean visible)

Specified by:
  `visitAnnotation` in interface `org.objectweb.asm.ClassVisitor`
Specified by:
  `visitAnnotation` in interface `org.objectweb.asm.FieldVisitor`
Specified by:
  `visitAnnotation` in interface `org.objectweb.asm.MethodVisitor`
Overrides:
  `visitAnnotation` in class `org.objectweb.asm.commons.EmptyVisitor`

#### visit

    public void visit(java.lang.String name,
                      java.lang.Object value)

Specified by:
  `visit` in interface `org.objectweb.asm.AnnotationVisitor`
Overrides:
  `visit` in class `org.objectweb.asm.commons.EmptyVisitor`

#### getVersion

    public int getVersion()

#### getMTime

    public long getMTime()