Class 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 Detail

      • CandidateChecks

        public CandidateChecks()
    • Method Detail

      • isContractsCandidate

        public static boolean isContractsCandidate​(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​(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​(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​(ClassNode type,
                                                            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​(ClassNode type,
                                                        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​(ClassNode type,
                                                      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​(ClassNode type,
                                                       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​(ClassNode type,
                                                               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​(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