Class ContractElementVisitor

All Implemented Interfaces:
ASTNodeMetaData, GroovyClassVisitor, GroovyCodeVisitor, ErrorCollecting

public class ContractElementVisitor extends BaseVisitor implements ASTNodeMetaData
Checks whether the given ClassNode is relevant for further processing.
  • Constructor Details

    • ContractElementVisitor

      public ContractElementVisitor(SourceUnit sourceUnit, ReaderSource source)
      Creates a visitor that detects whether a class participates in contract processing.
      Parameters:
      sourceUnit - the source unit currently being transformed
      source - the reader source backing the source unit
  • Method Details

    • visitClass

      public void visitClass(ClassNode node)
      Visits the supplied class and its hierarchy until any contract element is found.
      Specified by:
      visitClass in interface GroovyClassVisitor
      Overrides:
      visitClass in class ClassCodeVisitorSupport
      Parameters:
      node - the class to inspect
    • visitConstructorOrMethod

      protected void visitConstructorOrMethod(MethodNode methodNode, boolean isConstructor)
      Checks whether the visited constructor or method already has rewritten contract metadata.
      Overrides:
      visitConstructorOrMethod in class ClassCodeVisitorSupport
      Parameters:
      methodNode - the method or constructor being inspected
      isConstructor - whether the node represents a constructor
    • isFoundContractElement

      public boolean isFoundContractElement()
      Indicates whether any contract element was detected while traversing the class hierarchy.
      Returns:
      true once a contract element has been found