Class DomainModelInjectionVisitor

All Implemented Interfaces:
GroovyClassVisitor, GroovyCodeVisitor, ErrorCollecting

public class DomainModelInjectionVisitor extends BaseVisitor
Visits the given ClassNode and injects the current Contract into the given AST nodes.
See Also:
  • 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 transformed
      source - the reader source backing the source unit
      pci - per-class processing context shared across the contracts pipeline
  • Method Details

    • visitClass

      public void visitClass(ClassNode type)
      Injects all contract elements currently present in the domain model into the supplied class.
      Specified by:
      visitClass in interface GroovyClassVisitor
      Overrides:
      visitClass in class ClassCodeVisitorSupport
      Parameters:
      type - the class to update
    • injectClassInvariant

      public void injectClassInvariant(ClassNode type, ClassInvariant classInvariant)
      Generates AST support for the supplied class invariant.
      Parameters:
      type - the class that should receive the invariant
      classInvariant - the invariant to inject
    • injectPrecondition

      public void injectPrecondition(MethodNode method, Precondition precondition)
      Generates AST support for the supplied precondition.
      Parameters:
      method - the method that should receive the precondition
      precondition - the precondition to inject
    • injectPostcondition

      public void injectPostcondition(MethodNode method, Postcondition postcondition)
      Generates AST support for the supplied postcondition.
      Parameters:
      method - the method that should receive the postcondition
      postcondition - the postcondition to inject