org.python.core
Class APIReader

java.lang.Object
  extended by org.python.objectweb.asm.commons.EmptyVisitor
      extended by org.python.core.APIReader
All Implemented Interfaces:
org.python.objectweb.asm.AnnotationVisitor, org.python.objectweb.asm.ClassVisitor, org.python.objectweb.asm.FieldVisitor, org.python.objectweb.asm.MethodVisitor

public class APIReader
extends org.python.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
APIReader(byte[] data)
           
 
Method Summary
 int getVersion()
           
 void visit(java.lang.String name, java.lang.Object value)
           
 org.python.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String desc, boolean visible)
           
 
Methods inherited from class org.python.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

APIReader

public APIReader(byte[] data)
          throws java.io.IOException
Throws:
java.io.IOException
Method Detail

visitAnnotation

public org.python.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String desc,
                                                                  boolean visible)
Specified by:
visitAnnotation in interface org.python.objectweb.asm.ClassVisitor
Specified by:
visitAnnotation in interface org.python.objectweb.asm.FieldVisitor
Specified by:
visitAnnotation in interface org.python.objectweb.asm.MethodVisitor
Overrides:
visitAnnotation in class org.python.objectweb.asm.commons.EmptyVisitor

visit

public void visit(java.lang.String name,
                  java.lang.Object value)
Specified by:
visit in interface org.python.objectweb.asm.AnnotationVisitor
Overrides:
visit in class org.python.objectweb.asm.commons.EmptyVisitor

getVersion

public int getVersion()


Jython homepage