Package org.datanucleus.enhancer
Class ClassMethod
- java.lang.Object
-
- org.datanucleus.enhancer.ClassMethod
-
- Direct Known Subclasses:
Clone
,CopyField
,CopyFields
,CopyKeyFieldsFromObjectId
,CopyKeyFieldsFromObjectId2
,CopyKeyFieldsToObjectId
,CopyKeyFieldsToObjectId2
,DefaultConstructor
,GetExecutionContext
,GetInheritedFieldCount
,GetManagedFieldCount
,GetNormal
,GetObjectId
,GetStateManager
,GetTransactionalObjectId
,GetVersion
,GetViaCheck
,GetViaMediate
,InitClass
,InitFieldNames
,IsDetached
,IsDirty
,IsXXX
,LoadClass
,MakeDirty
,NewInstance1
,NewInstance2
,NewObjectIdInstance1
,NewObjectIdInstance2
,PreSerialize
,ProvideField
,ProvideFields
,ReplaceDetachedState
,ReplaceField
,ReplaceFields
,ReplaceFlags
,ReplaceStateManager
,SetNormal
,SetViaCheck
,SetViaMediate
,WriteObject
public abstract class ClassMethod extends java.lang.Object
Representation of a method that an enhanced class requires.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
access
Access flags for the method (public, protected etc).protected java.lang.String[]
argNames
Names of the arguments.protected java.lang.Object[]
argTypes
Types of the arguments.protected ClassEnhancer
enhancer
The parent enhancer.protected java.lang.String[]
exceptions
Exceptions that can be thrown.protected java.lang.String
methodName
Name of the method.protected java.lang.Object
returnType
Return type for the methodprotected MethodVisitor
visitor
Visitor for use in updating the method of the class (set in initialise).
-
Constructor Summary
Constructors Constructor Description ClassMethod(ClassEnhancer enhancer, java.lang.String name, int access, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames)
Constructor.ClassMethod(ClassEnhancer enhancer, java.lang.String name, int access, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames, java.lang.String[] exceptions)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
Method to close the definition of the class method.boolean
equals(java.lang.Object o)
Indicates whether some other object is "equal to" this one.abstract void
execute()
Method to add the contents of the class method.int
getAccess()
Accessor for the accessprotected ClassEnhancer
getClassEnhancer()
Convenience accessor for the ClassEnhancerjava.lang.String
getDescriptor()
Accessor for the descriptor of the method.static java.lang.String
getMethodAdditionMessage(java.lang.String methodName, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames)
Convenience method to generate a message that a method has been added.java.lang.String
getName()
Accessor for the method nameEnhancementNamer
getNamer()
int
hashCode()
Return hash code of this instance.void
initialise()
Default implementation of initialise, specifying the method based on the ClassMethod info.void
initialise(ClassVisitor classVisitor)
Method to initialise the class method.
-
-
-
Field Detail
-
enhancer
protected ClassEnhancer enhancer
The parent enhancer.
-
methodName
protected java.lang.String methodName
Name of the method.
-
access
protected int access
Access flags for the method (public, protected etc).
-
returnType
protected java.lang.Object returnType
Return type for the method
-
argTypes
protected java.lang.Object[] argTypes
Types of the arguments.
-
argNames
protected java.lang.String[] argNames
Names of the arguments.
-
exceptions
protected java.lang.String[] exceptions
Exceptions that can be thrown.
-
visitor
protected MethodVisitor visitor
Visitor for use in updating the method of the class (set in initialise).
-
-
Constructor Detail
-
ClassMethod
public ClassMethod(ClassEnhancer enhancer, java.lang.String name, int access, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames)
Constructor.- Parameters:
enhancer
- ClassEnhancername
- Name of the methodaccess
- Access for the method (PUBLIC, PROTECTED etc)returnType
- Return typeargTypes
- Argument type(s)argNames
- Argument name(s)
-
ClassMethod
public ClassMethod(ClassEnhancer enhancer, java.lang.String name, int access, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames, java.lang.String[] exceptions)
Constructor.- Parameters:
enhancer
- ClassEnhancername
- Name of the methodaccess
- Access for the method (PUBLIC, PROTECTED etc)returnType
- Return typeargTypes
- Argument type(s)argNames
- Argument name(s)exceptions
- Exceptions that can be thrown
-
-
Method Detail
-
initialise
public void initialise()
Default implementation of initialise, specifying the method based on the ClassMethod info.
-
initialise
public void initialise(ClassVisitor classVisitor)
Method to initialise the class method.- Parameters:
classVisitor
- Visitor for the class
-
getClassEnhancer
protected ClassEnhancer getClassEnhancer()
Convenience accessor for the ClassEnhancer- Returns:
- ClassEnhancer
-
getDescriptor
public java.lang.String getDescriptor()
Accessor for the descriptor of the method.- Returns:
- The descriptor
-
getNamer
public EnhancementNamer getNamer()
-
getName
public java.lang.String getName()
Accessor for the method name- Returns:
- Name of the method
-
getAccess
public int getAccess()
Accessor for the access- Returns:
- Access for the method
-
execute
public abstract void execute()
Method to add the contents of the class method.
-
close
public void close()
Method to close the definition of the class method. This implementation simply logs a debug message to category ENHANCER.
-
hashCode
public int hashCode()
Return hash code of this instance.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- hash code of this instance
-
equals
public boolean equals(java.lang.Object o)
Indicates whether some other object is "equal to" this one.- Overrides:
equals
in classjava.lang.Object
- Parameters:
o
- the reference object with which to compare.- Returns:
- true if this object is the same as the obj argument; false otherwise.
-
getMethodAdditionMessage
public static java.lang.String getMethodAdditionMessage(java.lang.String methodName, java.lang.Object returnType, java.lang.Object[] argTypes, java.lang.String[] argNames)
Convenience method to generate a message that a method has been added.- Parameters:
methodName
- Name of the methodreturnType
- Return type of the methodargTypes
- arg types for the methodargNames
- arg names for the method- Returns:
- The message
-
-