## 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: 12038 $

Field Summary
`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` | `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)`
`MethodNode` | `getMethodNode()`
`static long` | `getTimestamp(Class clazz)`
`boolean` | `methodNeedsReplacement(MethodNode m)`
`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)

### 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)

### getMethodNode

    public MethodNode getMethodNode()

### getTimestamp

    public static long getTimestamp(Class clazz)

### methodNeedsReplacement

    boolean methodNeedsReplacement(MethodNode m)

### 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)