Package org.datanucleus.enhancer.asm
Class FieldVisitor
- java.lang.Object
-
- org.datanucleus.enhancer.asm.FieldVisitor
-
public abstract class FieldVisitor extends Object
A visitor to visit a Java field. The methods of this class must be called in the following order: (visitAnnotation
|visitTypeAnnotation
|visitAttribute
)*visitEnd
.- Author:
- Eric Bruneton
-
-
Field Summary
Fields Modifier and Type Field Description protected int
api
The ASM API version implemented by this visitor.protected FieldVisitor
fv
The field visitor to which this visitor must delegate method calls.
-
Constructor Summary
Constructors Modifier Constructor Description protected
FieldVisitor(int api)
Constructs a newFieldVisitor
.protected
FieldVisitor(int api, FieldVisitor fieldVisitor)
Constructs a newFieldVisitor
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AnnotationVisitor
visitAnnotation(String descriptor, boolean visible)
Visits an annotation of the field.void
visitAttribute(Attribute attribute)
Visits a non standard attribute of the field.void
visitEnd()
Visits the end of the field.AnnotationVisitor
visitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible)
Visits an annotation on the type of the field.
-
-
-
Field Detail
-
api
protected final int api
The ASM API version implemented by this visitor. The value of this field must be one of theASM
x values inOpcodes
.
-
fv
protected FieldVisitor fv
The field visitor to which this visitor must delegate method calls. May be null.
-
-
Constructor Detail
-
FieldVisitor
protected FieldVisitor(int api)
Constructs a newFieldVisitor
.- Parameters:
api
- the ASM API version implemented by this visitor. Must be one of theASM
x values inOpcodes
.
-
FieldVisitor
protected FieldVisitor(int api, FieldVisitor fieldVisitor)
Constructs a newFieldVisitor
.- Parameters:
api
- the ASM API version implemented by this visitor. Must be one of theASM
x values inOpcodes
.fieldVisitor
- the field visitor to which this visitor must delegate method calls. May be null.
-
-
Method Detail
-
visitAnnotation
public AnnotationVisitor visitAnnotation(String descriptor, boolean visible)
Visits an annotation of the field.- Parameters:
descriptor
- the class descriptor of the annotation class.visible
- true if the annotation is visible at runtime.- Returns:
- a visitor to visit the annotation values, or null if this visitor is not interested in visiting this annotation.
-
visitTypeAnnotation
public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible)
Visits an annotation on the type of the field.- Parameters:
typeRef
- a reference to the annotated type. The sort of this type reference must beTypeReference.FIELD
. SeeTypeReference
.typePath
- the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be null if the annotation targets 'typeRef' as a whole.descriptor
- the class descriptor of the annotation class.visible
- true if the annotation is visible at runtime.- Returns:
- a visitor to visit the annotation values, or null if this visitor is not interested in visiting this annotation.
-
visitAttribute
public void visitAttribute(Attribute attribute)
Visits a non standard attribute of the field.- Parameters:
attribute
- an attribute.
-
visitEnd
public void visitEnd()
Visits the end of the field. This method, which is the last one to be called, is used to inform the visitor that all the annotations and attributes of the field have been visited.
-
-