Class ContractElementVisitor
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.apache.groovy.contracts.ast.visitor.BaseVisitor
org.apache.groovy.contracts.ast.visitor.ContractElementVisitor
- All Implemented Interfaces:
ASTNodeMetaData,GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
Checks whether the given
ClassNode is relevant for
further processing.-
Field Summary
Fields inherited from class org.apache.groovy.contracts.ast.visitor.BaseVisitor
GCONTRACTS_ENABLED_VAR, sourceUnitFields inherited from interface org.apache.groovy.contracts.ast.visitor.ASTNodeMetaData
CLOSURE_REPLACED, PROCESSED -
Constructor Summary
ConstructorsConstructorDescriptionContractElementVisitor(SourceUnit sourceUnit, ReaderSource source) Creates a visitor that detects whether a class participates in contract processing. -
Method Summary
Modifier and TypeMethodDescriptionbooleanIndicates whether any contract element was detected while traversing the class hierarchy.voidvisitClass(ClassNode node) Visits the supplied class and its hierarchy until any contract element is found.protected voidvisitConstructorOrMethod(MethodNode methodNode, boolean isConstructor) Checks whether the visited constructor or method already has rewritten contract metadata.Methods inherited from class org.apache.groovy.contracts.ast.visitor.BaseVisitor
asConditionExecution, getOriginalCondition, getReplacedCondition, getSourceUnit, replaceConditionMethods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotation, visitAnnotations, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitClosureExpression, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitStatementAnnotations, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoopMethods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpressionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visit, visit, visitEmptyExpression, visitListOfExpressions
-
Constructor Details
-
ContractElementVisitor
Creates a visitor that detects whether a class participates in contract processing.- Parameters:
sourceUnit- the source unit currently being transformedsource- the reader source backing the source unit
-
-
Method Details
-
visitClass
Visits the supplied class and its hierarchy until any contract element is found.- Specified by:
visitClassin interfaceGroovyClassVisitor- Overrides:
visitClassin classClassCodeVisitorSupport- Parameters:
node- the class to inspect
-
visitConstructorOrMethod
Checks whether the visited constructor or method already has rewritten contract metadata.- Overrides:
visitConstructorOrMethodin classClassCodeVisitorSupport- Parameters:
methodNode- the method or constructor being inspectedisConstructor- whether the node represents a constructor
-
isFoundContractElement
public boolean isFoundContractElement()Indicates whether any contract element was detected while traversing the class hierarchy.- Returns:
trueonce a contract element has been found
-