org.spockframework.compiler
Class AstUtil

java.lang.Object
  extended by org.spockframework.compiler.AstUtil

public abstract class AstUtil
extends java.lang.Object

Utility methods for AST processing.

Author:
Peter Niederwieser

Constructor Summary
AstUtil()
           
 
Method Summary
static
<T> T
asInstance(java.lang.Object obj, java.lang.Class<T> type)
           
static org.codehaus.groovy.ast.expr.MethodCallExpression createDirectMethodCall(org.codehaus.groovy.ast.expr.Expression target, org.codehaus.groovy.ast.MethodNode method, org.codehaus.groovy.ast.expr.Expression arguments)
           
static void deleteMethod(org.codehaus.groovy.ast.ClassNode clazz, org.codehaus.groovy.ast.MethodNode method)
           
static void expandBuiltinMemberAssignment(org.codehaus.groovy.ast.expr.BinaryExpression builtinMemberAssignment, org.codehaus.groovy.ast.expr.Expression... additionalArgs)
           
static void expandBuiltinMemberAssignmentOrCall(org.codehaus.groovy.ast.expr.Expression builtinMemberAssignmentOrCall, org.codehaus.groovy.ast.expr.Expression... additionalArgs)
           
static void expandBuiltinMemberCall(org.codehaus.groovy.ast.expr.Expression builtinMemberCall, org.codehaus.groovy.ast.expr.Expression... additionalArgs)
           
static org.codehaus.groovy.ast.AnnotationNode getAnnotation(org.codehaus.groovy.ast.ASTNode node, java.lang.Class<?> annotationType)
           
static java.util.List<org.codehaus.groovy.ast.expr.Expression> getArguments(org.codehaus.groovy.ast.expr.Expression expr)
           
static java.util.List<org.codehaus.groovy.ast.expr.Expression> getArguments(org.codehaus.groovy.ast.expr.MethodCallExpression expr)
           
static java.util.List<org.codehaus.groovy.ast.expr.Expression> getArguments(org.codehaus.groovy.ast.expr.StaticMethodCallExpression expr)
           
static org.codehaus.groovy.ast.expr.Expression getAssertionMessage(org.codehaus.groovy.ast.stmt.AssertStatement stat)
           
static
<T extends org.codehaus.groovy.ast.expr.Expression>
T
getExpression(org.codehaus.groovy.ast.stmt.Statement stat, java.lang.Class<T> type)
           
static org.codehaus.groovy.ast.expr.Expression getInvocationTarget(org.codehaus.groovy.ast.expr.Expression expr)
           
static java.util.List<org.codehaus.groovy.ast.stmt.Statement> getStatements(org.codehaus.groovy.ast.expr.ClosureExpression closure)
           
static java.util.List<org.codehaus.groovy.ast.stmt.Statement> getStatements(org.codehaus.groovy.ast.MethodNode method)
          Returns a list of statements of the given method.
static int getVisibility(org.codehaus.groovy.ast.FieldNode field)
           
static boolean hasAnnotation(org.codehaus.groovy.ast.ASTNode node, java.lang.Class<?> annotationType)
          Tells whether the given node has an annotation of the given type.
static boolean hasPlausibleSourcePosition(org.codehaus.groovy.ast.ASTNode node)
          Tells if the source position for the given AST node is plausible.
static boolean isBuiltinMemberAssignment(org.codehaus.groovy.ast.expr.BinaryExpression expr, java.lang.String methodName, int minArgs, int maxArgs)
           
static boolean isBuiltinMemberAssignmentOrCall(org.codehaus.groovy.ast.expr.Expression expr, java.lang.String methodName, int minArgs, int maxArgs)
           
static boolean isBuiltinMemberCall(org.codehaus.groovy.ast.expr.Expression expr, java.lang.String methodName, int minArgs, int maxArgs)
           
static boolean isBuiltinMemberCall(org.codehaus.groovy.ast.expr.MethodCallExpression expr, java.lang.String methodName, int minArgs, int maxArgs)
           
static boolean isJavaIdentifier(java.lang.String id)
           
static boolean isJointCompiled(org.codehaus.groovy.ast.ClassNode clazz)
           
static boolean isMethodInvocation(org.codehaus.groovy.ast.expr.Expression expr)
           
static boolean isSuperExpression(org.codehaus.groovy.ast.expr.Expression expr)
           
static boolean isSynthetic(org.codehaus.groovy.ast.MethodNode method)
           
static boolean isThisExpression(org.codehaus.groovy.ast.expr.Expression expr)
           
static boolean isWildcardRef(org.codehaus.groovy.ast.expr.Expression expr)
           
static void setVisibility(org.codehaus.groovy.ast.FieldNode field, int visibility)
           
static void setVisibility(org.codehaus.groovy.ast.MethodNode method, int visibility)
           
static org.codehaus.groovy.ast.expr.Expression toArgumentArray(java.util.List<org.codehaus.groovy.ast.expr.Expression> argList, IRewriteResources resources)
          Turns an argument list obtained from AstUtil.getArguments() into an Object[] array suitable to be passed to InvokerHelper or SpockRuntime.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AstUtil

public AstUtil()
Method Detail

hasAnnotation

public static boolean hasAnnotation(org.codehaus.groovy.ast.ASTNode node,
                                    java.lang.Class<?> annotationType)
Tells whether the given node has an annotation of the given type.

Parameters:
node - an AST node
annotationType - an annotation type
Returns:
true iff the given node has an annotation of the given type

getAnnotation

public static org.codehaus.groovy.ast.AnnotationNode getAnnotation(org.codehaus.groovy.ast.ASTNode node,
                                                                   java.lang.Class<?> annotationType)

getStatements

public static java.util.List<org.codehaus.groovy.ast.stmt.Statement> getStatements(org.codehaus.groovy.ast.MethodNode method)
Returns a list of statements of the given method. Modifications to the returned list will affect the method's statements.

Parameters:
method - a method (node)
Returns:
a list of statements of the given method

getStatements

public static java.util.List<org.codehaus.groovy.ast.stmt.Statement> getStatements(org.codehaus.groovy.ast.expr.ClosureExpression closure)

isMethodInvocation

public static boolean isMethodInvocation(org.codehaus.groovy.ast.expr.Expression expr)

getInvocationTarget

public static org.codehaus.groovy.ast.expr.Expression getInvocationTarget(org.codehaus.groovy.ast.expr.Expression expr)

isWildcardRef

public static boolean isWildcardRef(org.codehaus.groovy.ast.expr.Expression expr)

isJavaIdentifier

public static boolean isJavaIdentifier(java.lang.String id)

getExpression

public static <T extends org.codehaus.groovy.ast.expr.Expression> T getExpression(org.codehaus.groovy.ast.stmt.Statement stat,
                                                                                  java.lang.Class<T> type)

asInstance

public static <T> T asInstance(java.lang.Object obj,
                               java.lang.Class<T> type)

isSynthetic

public static boolean isSynthetic(org.codehaus.groovy.ast.MethodNode method)

hasPlausibleSourcePosition

public static boolean hasPlausibleSourcePosition(org.codehaus.groovy.ast.ASTNode node)
Tells if the source position for the given AST node is plausible. Does not imply that the source position is correct.

Parameters:
node - an AST node
Returns:
true iff the AST node has a plausible source position

getArguments

public static java.util.List<org.codehaus.groovy.ast.expr.Expression> getArguments(org.codehaus.groovy.ast.expr.Expression expr)

getArguments

public static java.util.List<org.codehaus.groovy.ast.expr.Expression> getArguments(org.codehaus.groovy.ast.expr.MethodCallExpression expr)

getArguments

public static java.util.List<org.codehaus.groovy.ast.expr.Expression> getArguments(org.codehaus.groovy.ast.expr.StaticMethodCallExpression expr)

toArgumentArray

public static org.codehaus.groovy.ast.expr.Expression toArgumentArray(java.util.List<org.codehaus.groovy.ast.expr.Expression> argList,
                                                                      IRewriteResources resources)
Turns an argument list obtained from AstUtil.getArguments() into an Object[] array suitable to be passed to InvokerHelper or SpockRuntime. The main challenge is to handle SpreadExpression's correctly.


isBuiltinMemberAssignmentOrCall

public static boolean isBuiltinMemberAssignmentOrCall(org.codehaus.groovy.ast.expr.Expression expr,
                                                      java.lang.String methodName,
                                                      int minArgs,
                                                      int maxArgs)

isBuiltinMemberAssignment

public static boolean isBuiltinMemberAssignment(org.codehaus.groovy.ast.expr.BinaryExpression expr,
                                                java.lang.String methodName,
                                                int minArgs,
                                                int maxArgs)

isBuiltinMemberCall

public static boolean isBuiltinMemberCall(org.codehaus.groovy.ast.expr.Expression expr,
                                          java.lang.String methodName,
                                          int minArgs,
                                          int maxArgs)

isBuiltinMemberCall

public static boolean isBuiltinMemberCall(org.codehaus.groovy.ast.expr.MethodCallExpression expr,
                                          java.lang.String methodName,
                                          int minArgs,
                                          int maxArgs)

expandBuiltinMemberAssignmentOrCall

public static void expandBuiltinMemberAssignmentOrCall(org.codehaus.groovy.ast.expr.Expression builtinMemberAssignmentOrCall,
                                                       org.codehaus.groovy.ast.expr.Expression... additionalArgs)
                                                throws InvalidSpecCompileException
Throws:
InvalidSpecCompileException

expandBuiltinMemberAssignment

public static void expandBuiltinMemberAssignment(org.codehaus.groovy.ast.expr.BinaryExpression builtinMemberAssignment,
                                                 org.codehaus.groovy.ast.expr.Expression... additionalArgs)
                                          throws InvalidSpecCompileException
Throws:
InvalidSpecCompileException

expandBuiltinMemberCall

public static void expandBuiltinMemberCall(org.codehaus.groovy.ast.expr.Expression builtinMemberCall,
                                           org.codehaus.groovy.ast.expr.Expression... additionalArgs)
                                    throws InvalidSpecCompileException
Throws:
InvalidSpecCompileException

getAssertionMessage

public static org.codehaus.groovy.ast.expr.Expression getAssertionMessage(org.codehaus.groovy.ast.stmt.AssertStatement stat)

isThisExpression

public static boolean isThisExpression(org.codehaus.groovy.ast.expr.Expression expr)

isSuperExpression

public static boolean isSuperExpression(org.codehaus.groovy.ast.expr.Expression expr)

setVisibility

public static void setVisibility(org.codehaus.groovy.ast.MethodNode method,
                                 int visibility)

getVisibility

public static int getVisibility(org.codehaus.groovy.ast.FieldNode field)

setVisibility

public static void setVisibility(org.codehaus.groovy.ast.FieldNode field,
                                 int visibility)

isJointCompiled

public static boolean isJointCompiled(org.codehaus.groovy.ast.ClassNode clazz)

createDirectMethodCall

public static org.codehaus.groovy.ast.expr.MethodCallExpression createDirectMethodCall(org.codehaus.groovy.ast.expr.Expression target,
                                                                                       org.codehaus.groovy.ast.MethodNode method,
                                                                                       org.codehaus.groovy.ast.expr.Expression arguments)

deleteMethod

public static void deleteMethod(org.codehaus.groovy.ast.ClassNode clazz,
                                org.codehaus.groovy.ast.MethodNode method)


Copyright © 2013. All rights reserved