Class CandidateChecks

java.lang.Object
org.apache.groovy.contracts.generation.CandidateChecks

public class CandidateChecks extends Object

Functions in this class are used to determine whether a certain AST node fulfills certain assertion requirements. E.g. whether a class node is a class invariant candidate or not.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    couldBeContractElementMethodNode(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
    Checks whether the given MethodNode could be a candidate for an arbitrary ContractElement annotation.
    static boolean
    isClassInvariantCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
    Decides whether the given method is a candidate for class invariants.
    static boolean
    isClassInvariantCandidate(org.codehaus.groovy.ast.PropertyNode propertyNode)
    Decides whether the given propertyNode is a candidate for class invariant injection.
    static boolean
    isContractsCandidate(org.codehaus.groovy.ast.ClassNode type)
    Checks whether the given ClassNode is a candidate for applying contracts.
    static boolean
    isInterfaceContractsCandidate(org.codehaus.groovy.ast.ClassNode type)
    Checks whether the given ClassNode is a candidate for applying interface contracts.
    static boolean
    isPostconditionCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
    Decides whether the given method is a candidate for a post-condition.
    static boolean
    isPreconditionCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
    Decides whether the given method is a candidate for a pre-condition.
    static boolean
    isPreOrPostconditionCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
    Decides whether the given method is a candidate for a pre- or postcondition.
    static boolean
    isRuntimeClass(org.codehaus.groovy.ast.ClassNode type)
    Checks whether the given ClassNode is part of the Groovy/Java runtime.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CandidateChecks

      public CandidateChecks()
  • Method Details

    • isContractsCandidate

      public static boolean isContractsCandidate(org.codehaus.groovy.ast.ClassNode type)
      Checks whether the given ClassNode is a candidate for applying contracts.

      If the given class node has already been processed in this compilation run, this method will return false.

      Parameters:
      type - the ClassNode to be checked
      Returns:
      whether the given type is a candidate for applying contract assertions
    • isInterfaceContractsCandidate

      public static boolean isInterfaceContractsCandidate(org.codehaus.groovy.ast.ClassNode type)
      Checks whether the given ClassNode is a candidate for applying interface contracts.
      Parameters:
      type - the ClassNode to be checked
      Returns:
      whether the given type is a candidate for applying interface contract assertions
    • isClassInvariantCandidate

      public static boolean isClassInvariantCandidate(org.codehaus.groovy.ast.PropertyNode propertyNode)
      Decides whether the given propertyNode is a candidate for class invariant injection.
      Parameters:
      propertyNode - the PropertyNode to check
      Returns:
      whether the propertyNode is a candidate for injecting the class invariant or not
    • isPreOrPostconditionCandidate

      public static boolean isPreOrPostconditionCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
      Decides whether the given method is a candidate for a pre- or postcondition.
      Parameters:
      type - the current ClassNode
      method - the MethodNode to check for pre- or postcondition compliance
      Returns:
      whether the given MethodNode is a candidate for pre- or postconditions
    • isClassInvariantCandidate

      public static boolean isClassInvariantCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
      Decides whether the given method is a candidate for class invariants.
      Parameters:
      type - the current ClassNode
      method - the MethodNode to check for class invariant compliance
      Returns:
      whether the given MethodNode is a candidate for class invariants
    • isPreconditionCandidate

      public static boolean isPreconditionCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
      Decides whether the given method is a candidate for a pre-condition.
      Parameters:
      type - the current ClassNode
      method - the MethodNode to check for pre-condition compliance
      Returns:
      whether the given MethodNode is a candidate for pre-conditions
    • isPostconditionCandidate

      public static boolean isPostconditionCandidate(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
      Decides whether the given method is a candidate for a post-condition.
      Parameters:
      type - the current ClassNode
      method - the MethodNode to check for post-condition compliance
      Returns:
      whether the given MethodNode is a candidate for post-conditions
    • couldBeContractElementMethodNode

      public static boolean couldBeContractElementMethodNode(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.MethodNode method)
      Checks whether the given MethodNode could be a candidate for an arbitrary ContractElement annotation.
      Parameters:
      type - the current ClassNode
      method - the MethodNode to check for ContractElement compliance
      Returns:
      whether the given method node could be a candidate or not
    • isRuntimeClass

      public static boolean isRuntimeClass(org.codehaus.groovy.ast.ClassNode type)
      Checks whether the given ClassNode is part of the Groovy/Java runtime.
      Parameters:
      type - the current ClassNode
      Returns:
      true whether the current ClassNode is a Groovy/Java system class