Class DomainModelInjectionVisitor
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.DomainModelInjectionVisitor
- All Implemented Interfaces:
GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
- See Also:
-
Field Summary
Fields inherited from class org.apache.groovy.contracts.ast.visitor.BaseVisitor
GCONTRACTS_ENABLED_VAR, sourceUnit -
Constructor Summary
ConstructorsConstructorDescriptionDomainModelInjectionVisitor(SourceUnit sourceUnit, ReaderSource source, ProcessingContextInformation pci) Creates a visitor that materializes the accumulated contract domain model back into AST nodes. -
Method Summary
Modifier and TypeMethodDescriptionvoidinjectClassInvariant(ClassNode type, ClassInvariant classInvariant) Generates AST support for the supplied class invariant.voidinjectPostcondition(MethodNode method, Postcondition postcondition) Generates AST support for the supplied postcondition.voidinjectPrecondition(MethodNode method, Precondition precondition) Generates AST support for the supplied precondition.voidvisitClass(ClassNode type) Injects all contract elements currently present in the domain model into the supplied class.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, visitConstructorOrMethod, 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
-
DomainModelInjectionVisitor
public DomainModelInjectionVisitor(SourceUnit sourceUnit, ReaderSource source, ProcessingContextInformation pci) Creates a visitor that materializes the accumulated contract domain model back into AST nodes.- Parameters:
sourceUnit- the source unit currently being transformedsource- the reader source backing the source unitpci- per-class processing context shared across the contracts pipeline
-
-
Method Details
-
visitClass
Injects all contract elements currently present in the domain model into the supplied class.- Specified by:
visitClassin interfaceGroovyClassVisitor- Overrides:
visitClassin classClassCodeVisitorSupport- Parameters:
type- the class to update
-
injectClassInvariant
Generates AST support for the supplied class invariant.- Parameters:
type- the class that should receive the invariantclassInvariant- the invariant to inject
-
injectPrecondition
Generates AST support for the supplied precondition.- Parameters:
method- the method that should receive the preconditionprecondition- the precondition to inject
-
injectPostcondition
Generates AST support for the supplied postcondition.- Parameters:
method- the method that should receive the postconditionpostcondition- the postcondition to inject
-