public class Verifier extends Object
Verifies the AST node and adds any default AST code before bytecode generation occurs. Checks include:
Modifiers | Name | Description |
---|---|---|
interface |
Verifier.DefaultArgsAction |
Modifiers | Name | Description |
---|---|---|
static String |
DEFAULT_PARAMETER_GENERATED |
|
static String |
INITIAL_EXPRESSION |
|
static String |
STATIC_METACLASS_BOOL |
|
static String |
SWAP_INIT |
|
static String |
__TIMESTAMP |
|
static String |
__TIMESTAMP__ |
Type Params | Return Type | Name and description |
---|---|---|
|
protected void |
addClosureCode(InnerClassNode node) |
|
protected void |
addConstructor(Parameter[] newParams, ConstructorNode ctor, Statement code, ClassNode node) |
|
protected void |
addCovariantMethods(ClassNode classNode) |
|
protected void |
addDefaultConstructor(ClassNode node) |
|
protected void |
addDefaultParameterConstructors(ClassNode node) |
|
protected void |
addDefaultParameterMethods(ClassNode node) Creates a new helper method for each combination of default parameter expressions |
|
protected void |
addDefaultParameters(List methods, Verifier.DefaultArgsAction action) Creates a new helper method for each combination of default parameter expressions |
|
protected void |
addDefaultParameters(Verifier.DefaultArgsAction action, MethodNode method) |
|
protected void |
addFieldInitialization(List list, List staticList, FieldNode fieldNode, boolean isEnumClassNode, List initStmtsAfterEnumValuesInit, Set explicitStaticPropsInEnum) |
|
protected void |
addGroovyObjectInterfaceAndMethods(ClassNode node, String classInternalName) |
|
protected void |
addInitialization(ClassNode node) |
|
protected void |
addInitialization(ClassNode node, ConstructorNode constructorNode) |
|
protected void |
addMethod(ClassNode node, boolean shouldBeSynthetic, String name, int modifiers, ClassNode returnType, Parameter[] parameters, ClassNode[] exceptions, Statement code) Helper method to add a new method to a ClassNode. |
|
protected void |
addPropertyMethod(MethodNode method) |
|
protected void |
addReturnIfNeeded(MethodNode node) |
|
protected void |
addTimeStamp(ClassNode node) |
|
static String |
capitalize(String name) Capitalizes the start of the given bean property name |
|
protected Statement |
createGetterBlock(PropertyNode propertyNode, FieldNode field) |
|
protected Statement |
createSetterBlock(PropertyNode propertyNode, FieldNode field) |
|
ClassNode |
getClassNode() |
|
MethodNode |
getMethodNode() |
|
static long |
getTimestamp(Class clazz) |
|
protected void |
setClassNode(ClassNode classNode) |
|
static ConstantExpression |
transformToPrimitiveConstantIfPossible(ConstantExpression constantExpression) When constant expressions are created, the value is always wrapped to a non primitive type. |
|
void |
visitClass(ClassNode node) walk the class |
|
void |
visitConstructor(ConstructorNode node) |
|
void |
visitField(FieldNode node) |
|
void |
visitGenericType(GenericsType genericsType) |
|
void |
visitMethod(MethodNode node) |
|
void |
visitProperty(PropertyNode node) |
Creates a new helper method for each combination of default parameter expressions
Creates a new helper method for each combination of default parameter expressions
Helper method to add a new method to a ClassNode. Depending on the shouldBeSynthetic flag the call will either be made to ClassNode.addSyntheticMethod() or ClassNode.addMethod(). If a non-synthetic method is to be added the ACC_SYNTHETIC modifier is removed if it has been accidentally supplied.
When constant expressions are created, the value is always wrapped to a non primitive type. Some constant expressions are optimized to return primitive types, but not all primitives are handled. This method guarantees to return a similar constant expression but with a primitive type instead of a boxed type.
Additionally, single char strings are converted to 'char' types.constantExpression
- a constant expressionwalk the class
node
- the node to visit