org.spockframework.compiler
Class DeepStatementRewriter

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.ast.ClassCodeVisitorSupport
          extended by org.spockframework.compiler.StatementReplacingVisitorSupport
              extended by org.spockframework.compiler.DeepStatementRewriter
All Implemented Interfaces:
org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor

public class DeepStatementRewriter
extends StatementReplacingVisitorSupport

Walks the statement and expression tree to: - rewrite explicit conditions, - rewrite interactions, - rewrite core language primitives (members of class Specification) - Forbid Also records whether conditions and interactions were found.

Author:
Peter Niederwieser

Constructor Summary
DeepStatementRewriter(IRewriteResources resources)
           
 
Method Summary
 boolean isConditionFound()
           
 boolean isInteractionFound()
           
 void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement stat)
           
 void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expr)
           
 void visitBlock(Block block)
           
 void visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement stat)
           
 void visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expr)
           
 void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expr)
           
 void visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement stat)
           
 void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression expr)
           
 
Methods inherited from class org.spockframework.compiler.StatementReplacingVisitorSupport
getSourceUnit, replace, replaceAll, replaceVisitedStatementWith, visitCaseStatement, visitCatchStatement, visitDoWhileLoop, visitForLoop, visitIfElse, visitSwitch, visitSynchronizedStatement, visitTryCatchFinally, visitWhileLoop
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitBreakStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitField, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitThrowStatement
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DeepStatementRewriter

public DeepStatementRewriter(IRewriteResources resources)
Method Detail

isConditionFound

public boolean isConditionFound()

isInteractionFound

public boolean isInteractionFound()

visitBlock

public void visitBlock(Block block)

visitAssertStatement

public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement stat)
Specified by:
visitAssertStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitAssertStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitExpressionStatement

public void visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement stat)
Specified by:
visitExpressionStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitExpressionStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitClosureExpression

public void visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expr)
Specified by:
visitClosureExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitClosureExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

visitBlockStatement

public void visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement stat)
Specified by:
visitBlockStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitBlockStatement in class StatementReplacingVisitorSupport

visitDeclarationExpression

public void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expr)
Specified by:
visitDeclarationExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitDeclarationExpression in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitBinaryExpression

public void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expr)
Specified by:
visitBinaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitBinaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

visitMethodCallExpression

public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression expr)
Specified by:
visitMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport


Copyright © 2013. All rights reserved