org.datanucleus.enhancer.jdo
Class JDOClassAdapter

java.lang.Object
  extended by org.datanucleus.asm.ClassVisitor
      extended by org.datanucleus.enhancer.jdo.JDOClassAdapter

public class JDOClassAdapter
extends ClassVisitor

Adapter visitor class for providing enhancement of an existing class using ASM. Is created with its own ClassWriter, and is passed to a ClassReader to visit the class. All parts of the class to be enhanced are fed through the different visitXXX methods here allowing intervention to either enhance an existing method, or to add on new fields/methods/interfaces.


Field Summary
protected  ClassEnhancer enhancer
          The underlying enhancer.
protected  boolean hasDefaultConstructor
          Whether a default constructor is present.
protected  boolean hasJdoDetachedState
          Whether the field jdoDetachedState is present.
protected  boolean hasSerialVersionUID
          Whether the field serialVersionUID is present.
protected  boolean hasStaticInitialisation
          Whether the class already has a static init block.
protected  boolean hasWriteObject
          Whether the method writeObject(ObjectOutputStream) is present.
protected static Localiser LOCALISER
          Localisation of messages
 
Fields inherited from class org.datanucleus.asm.ClassVisitor
api, cv
 
Constructor Summary
JDOClassAdapter(ClassVisitor cv, ClassEnhancer enhancer)
          Constructor.
 
Method Summary
 void visit(int version, int access, String name, String signature, String superName, String[] interfaces)
          Method called to visit the header of the class.
 void visitEnd()
          Method called at the end of the class.
 FieldVisitor visitField(int access, String name, String desc, String signature, Object value)
          Method called when a field of the class is visited.
 MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)
          Method called when a method of the class is visited.
 
Methods inherited from class org.datanucleus.asm.ClassVisitor
visitAnnotation, visitAttribute, visitInnerClass, visitOuterClass, visitSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOCALISER

protected static final Localiser LOCALISER
Localisation of messages


enhancer

protected ClassEnhancer enhancer
The underlying enhancer.


hasDefaultConstructor

protected boolean hasDefaultConstructor
Whether a default constructor is present. Set if found, and then processed in visitEnd.


hasSerialVersionUID

protected boolean hasSerialVersionUID
Whether the field serialVersionUID is present. Set if found, and processed in visitEnd.


hasJdoDetachedState

protected boolean hasJdoDetachedState
Whether the field jdoDetachedState is present. Set if found, and processed in visitEnd.


hasWriteObject

protected boolean hasWriteObject
Whether the method writeObject(ObjectOutputStream) is present. Set if found, and processed in visitEnd.


hasStaticInitialisation

protected boolean hasStaticInitialisation
Whether the class already has a static init block. Set if found, and processed in visitEnd.

Constructor Detail

JDOClassAdapter

public JDOClassAdapter(ClassVisitor cv,
                       ClassEnhancer enhancer)
Constructor. If the writer is null it means we just have to check the enhancement status

Parameters:
cv - The writer visitor
Method Detail

visit

public void visit(int version,
                  int access,
                  String name,
                  String signature,
                  String superName,
                  String[] interfaces)
Method called to visit the header of the class.

Overrides:
visit in class ClassVisitor
Parameters:
version - Version of this class
access - Access for the class
name - name of the class
signature - Signature of the class
superName - Superclass name (if any)
interfaces - Interface(s) implemented

visitField

public FieldVisitor visitField(int access,
                               String name,
                               String desc,
                               String signature,
                               Object value)
Method called when a field of the class is visited.

Overrides:
visitField in class ClassVisitor
Parameters:
access - Access type
name - Name of the field
desc - Descriptor of the field
signature - Signature of the field
value - Value of the field
Returns:
FieldVisitor

visitMethod

public MethodVisitor visitMethod(int access,
                                 String name,
                                 String desc,
                                 String signature,
                                 String[] exceptions)
Method called when a method of the class is visited.

Overrides:
visitMethod in class ClassVisitor
Parameters:
access - Access for the method
name - Name of the method
desc - Descriptor
signature - Signature
exceptions - Exceptions that this method is declared to throw
Returns:
Visitor to visit this (or null if not wanting to visit it)

visitEnd

public void visitEnd()
Method called at the end of the class.

Overrides:
visitEnd in class ClassVisitor


Copyright © 2013. All Rights Reserved.