org.codehaus.groovy.classgen
Interface Verifier

Verifies the AST node and adds any defaulted AST code before bytecode generation occurs.

author:
James Strachan
version:
$Revision: 13427 $

Field Summary
 def GET_PROPERTY_PARAMS
           
 def INVOKE_METHOD_PARAMS
           
 def SET_METACLASS_PARAMS
           
 def SET_PROPERTY_PARAMS
           
 String __TIMESTAMP
           
 String __TIMESTAMP__
           
 ClassNode classNode
           
 MethodNode methodNode
           
 
 
Method Summary
void addClosureCode(InnerClassNode node)
          
void addCovariantMethods(ClassNode classNode)
          
void addCovariantMethods(ClassNode classNode, List declaredMethods, Map methodsToAdd, Map oldGenericsSpec)
          
void addDefaultParameterConstructors(ClassNode node)
          
void addDefaultParameterMethods(ClassNode node)
           Creates a new helper method for each combination of default parameter expressions
void addDefaultParameters(List methods, DefaultArgsAction action)
           Creates a new helper method for each combination of default parameter expressions
void addFieldInitialization(List list, List staticList, FieldNode fieldNode)
          
void addInitialization(ClassNode node)
          
void addInitialization(ClassNode node, ConstructorNode constructorNode)
          
void addPropertyMethod(MethodNode method)
          
void addTimeStamp(ClassNode node)
          
void call(ArgumentListExpression arguments, def newParams, MethodNode method)
          
static String capitalize(String name)
           Capitalizes the start of the given bean property name
void checkReturnInObjectInitializer(List init)
          
def cleanParameters(def parameters)
          
ClassNode correctToGenericsSpec(Map genericsSpec, GenericsType type)
          
ClassNode correctToGenericsSpec(Map genericsSpec, ClassNode type)
          
Map createGenericsSpec(ClassNode current, Map oldSpec)
          
Statement createGetterBlock(PropertyNode propertyNode, FieldNode field)
          
Statement createSetterBlock(PropertyNode propertyNode, FieldNode field)
          
boolean equalParametersNormal(MethodNode m1, MethodNode m2)
          
boolean equalParametersWithGenerics(MethodNode m1, MethodNode m2, Map genericsSpec)
          
Statement filterStatement(Statement statement)
          
List filterStatements(List list)
           Filters the given statements
ClassNode getClassNode()
          
MethodNode getCovariantImplementation(MethodNode oldMethod, MethodNode overridingMethod, Map genericsSpec)
          
ConstructorCallExpression getFirstIfSpecialConstructorCall(Statement code)
          
FieldNode getMetaClassField(ClassNode node)
          
MethodNode getMethodNode()
          
static long getTimestamp(Class clazz)
          
boolean isAssignable(ClassNode node, ClassNode testNode)
          
boolean methodNeedsReplacement(MethodNode m)
          
FieldNode setMetaClassFieldIfNotExists(ClassNode node, FieldNode metaClassField)
          
void storeMissingCovariantMethods(ClassNode current, MethodNode method, Map methodsToAdd, Map genericsSpec)
          
void visitClass(ClassNode node)
           add code to implement GroovyObject
void visitConstructor(ConstructorNode node)
          
void visitField(FieldNode node)
          
void visitGenericType(GenericsType genericsType)
          
void visitMethod(MethodNode node)
          
void visitProperty(PropertyNode node)
          
 

Method Detail

addClosureCode

void addClosureCode(InnerClassNode node)


addCovariantMethods

void addCovariantMethods(ClassNode classNode)


addCovariantMethods

void addCovariantMethods(ClassNode classNode, List declaredMethods, Map methodsToAdd, Map oldGenericsSpec)


addDefaultParameterConstructors

void addDefaultParameterConstructors(ClassNode node)


addDefaultParameterMethods

void addDefaultParameterMethods(ClassNode node)
Creates a new helper method for each combination of default parameter expressions


addDefaultParameters

void addDefaultParameters(List methods, DefaultArgsAction action)
Creates a new helper method for each combination of default parameter expressions


addFieldInitialization

void addFieldInitialization(List list, List staticList, FieldNode fieldNode)


addInitialization

void addInitialization(ClassNode node)


addInitialization

void addInitialization(ClassNode node, ConstructorNode constructorNode)


addPropertyMethod

void addPropertyMethod(MethodNode method)


addTimeStamp

void addTimeStamp(ClassNode node)


call

public void call(ArgumentListExpression arguments, def newParams, MethodNode method)


capitalize

public static String capitalize(String name)
Capitalizes the start of the given bean property name


checkReturnInObjectInitializer

void checkReturnInObjectInitializer(List init)


cleanParameters

def cleanParameters(def parameters)


correctToGenericsSpec

ClassNode correctToGenericsSpec(Map genericsSpec, GenericsType type)


correctToGenericsSpec

ClassNode correctToGenericsSpec(Map genericsSpec, ClassNode type)


createGenericsSpec

Map createGenericsSpec(ClassNode current, Map oldSpec)


createGetterBlock

Statement createGetterBlock(PropertyNode propertyNode, FieldNode field)


createSetterBlock

Statement createSetterBlock(PropertyNode propertyNode, FieldNode field)


equalParametersNormal

boolean equalParametersNormal(MethodNode m1, MethodNode m2)


equalParametersWithGenerics

boolean equalParametersWithGenerics(MethodNode m1, MethodNode m2, Map genericsSpec)


filterStatement

Statement filterStatement(Statement statement)


filterStatements

List filterStatements(List list)
Filters the given statements


getClassNode

public ClassNode getClassNode()


getCovariantImplementation

MethodNode getCovariantImplementation(MethodNode oldMethod, MethodNode overridingMethod, Map genericsSpec)


getFirstIfSpecialConstructorCall

ConstructorCallExpression getFirstIfSpecialConstructorCall(Statement code)


getMetaClassField

FieldNode getMetaClassField(ClassNode node)


getMethodNode

public MethodNode getMethodNode()


getTimestamp

public static long getTimestamp(Class clazz)


isAssignable

boolean isAssignable(ClassNode node, ClassNode testNode)


methodNeedsReplacement

boolean methodNeedsReplacement(MethodNode m)


setMetaClassFieldIfNotExists

FieldNode setMetaClassFieldIfNotExists(ClassNode node, FieldNode metaClassField)


storeMissingCovariantMethods

void storeMissingCovariantMethods(ClassNode current, MethodNode method, Map methodsToAdd, Map genericsSpec)


visitClass

public void visitClass(ClassNode node)
add code to implement GroovyObject
param:
node


visitConstructor

public void visitConstructor(ConstructorNode node)


visitField

public void visitField(FieldNode node)


visitGenericType

public void visitGenericType(GenericsType genericsType)


visitMethod

public void visitMethod(MethodNode node)


visitProperty

public void visitProperty(PropertyNode node)