Package: org.codehaus.groovy.classgen

## [Java] Class ClassCompletionVerifier

- org.codehaus.groovy.classgen.ClassCompletionVerifier

-     public class ClassCompletionVerifier
      extends ClassCodeVisitorSupport

  Checks that a class satisfies various conditions including:

  - Incorrect class or method access modifiers
  - No abstract methods appear in a non-abstract class
  - Existence and correct visibility for inherited members
  - Invalid attempts to override final members

- - ### Constructor Summary

    Constructors
    Constructor and description
    `ClassCompletionVerifier(SourceUnit source)` Creates a new class completion verifier.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public ClassNode` | `getClassNode()` Returns the class node currently being verified.
    `` | `protected SourceUnit` | `getSourceUnit()` * Provides access to the SourceUnit for error reporting during visitation. * Implementations must override this method. * * Returns: the source unit for this visitor
    `` | `public void` | `visitBinaryExpression(BinaryExpression expression)` * Visits a BinaryExpression, traversing left and right operand expressions. * * Parameters: `expression` - the binary expression
    `` | `public void` | `visitCatchStatement(CatchStatement cs)` * Visits a CatchStatement, processing variable annotations and invoking the statement hook. * * Parameters: `statement` - the catch statement to visit
    `` | `public void` | `visitClass(ClassNode node)` * Visits a ClassNode, processing its annotations, package, imports, contents, and object initializers. * * Parameters: `node` - the class node to visit
    `` | `public void` | `visitConstantExpression(ConstantExpression expression)` * Visits a ConstantExpression. No traversal is performed as constants contain no child expressions. * * Parameters: `expression` - the constant expression
    `` | `public void` | `visitConstructor(ConstructorNode node)` * Visits a ConstructorNode, processing its annotations, parameter annotations, and code block. * * Parameters: `node` - the constructor node to visit
    `` | `public void` | `visitDeclarationExpression(DeclarationExpression expression)` * Visits a DeclarationExpression with annotation processing, traversing expression annotations * before delegating to parent traversal. * * Parameters: `expression` - the declaration expression to visit
    `` | `public void` | `visitField(FieldNode node)` * Visits a FieldNode, processing its annotations and initial value expression if present. * * Parameters: `node` - the field node to visit
    `` | `public void` | `visitForLoop(ForStatement fs)` * Visits a ForStatement, invoking statement hooks and processing loop variable annotations. * * Parameters: `statement` - the for statement to visit
    `` | `public void` | `visitGStringExpression(GStringExpression expression)` * Visits a GStringExpression, traversing string parts and interpolated value expressions. * * Parameters: `expression` - the GString expression
    `` | `public void` | `visitMethod(MethodNode node)` * Visits a MethodNode, processing its annotations, parameter annotations, and code block. * * Parameters: `node` - the method node to visit
    `` | `public void` | `visitMethodCallExpression(MethodCallExpression mce)` * Visits a MethodCallExpression, traversing the object expression, * method expression, and argument list. * * Parameters: `call` - the method call expression
    `` | `public void` | `visitProperty(PropertyNode node)` * Visits a PropertyNode, processing its annotations, initial value expression, * and getter/setter blocks if present. * * Parameters: `node` - the property node to visit

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class ClassCodeVisitorSupport` | `addError, getSourceUnit, visitAnnotation, visitAnnotations, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitClosureExpression, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitStatementAnnotations, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop`
    `class CodeVisitorSupport` | `afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop`

- - ### Constructor Detail

    - #### public ClassCompletionVerifier(SourceUnit source)

      Creates a new class completion verifier.

      Parameters:
        `source` - the source unit to verify

  - ### Method Detail

    - #### public ClassNode getClassNode()

      Returns the class node currently being verified.

      Returns:
        the current class node

    - #### protected SourceUnit getSourceUnit()

      * Provides access to the SourceUnit for error reporting during visitation. * Implementations must override this method. * *

      Returns:
        the source unit for this visitor

    - #### public void visitBinaryExpression(BinaryExpression expression)

      * Visits a BinaryExpression, traversing left and right operand expressions. * *

      Parameters:
        `expression` - the binary expression

    - #### public void visitCatchStatement(CatchStatement cs)

      * Visits a CatchStatement, processing variable annotations and invoking the statement hook. * *

      Parameters:
        `statement` - the catch statement to visit

    - #### public void visitClass(ClassNode node)

      * Visits a ClassNode, processing its annotations, package, imports, contents, and object initializers. * *

      Parameters:
        `node` - the class node to visit

    - #### public void visitConstantExpression(ConstantExpression expression)

      * Visits a ConstantExpression. No traversal is performed as constants contain no child expressions. * *

      Parameters:
        `expression` - the constant expression

    - #### public void visitConstructor(ConstructorNode node)

      * Visits a ConstructorNode, processing its annotations, parameter annotations, and code block. * *

      Parameters:
        `node` - the constructor node to visit

    - #### public void visitDeclarationExpression(DeclarationExpression expression)

      * Visits a DeclarationExpression with annotation processing, traversing expression annotations * before delegating to parent traversal. * *

      Parameters:
        `expression` - the declaration expression to visit

    - #### public void visitField(FieldNode node)

      * Visits a FieldNode, processing its annotations and initial value expression if present. * *

      Parameters:
        `node` - the field node to visit

    - #### public void visitForLoop(ForStatement fs)

      * Visits a ForStatement, invoking statement hooks and processing loop variable annotations. * *

      Parameters:
        `statement` - the for statement to visit

    - #### public void visitGStringExpression(GStringExpression expression)

      * Visits a GStringExpression, traversing string parts and interpolated value expressions. * *

      Parameters:
        `expression` - the GString expression

    - #### public void visitMethod(MethodNode node)

      * Visits a MethodNode, processing its annotations, parameter annotations, and code block. * *

      Parameters:
        `node` - the method node to visit

    - #### public void visitMethodCallExpression(MethodCallExpression mce)

      * Visits a MethodCallExpression, traversing the object expression, * method expression, and argument list. * *

      Parameters:
        `call` - the method call expression

    - #### public void visitProperty(PropertyNode node)

      * Visits a PropertyNode, processing its annotations, initial value expression, * and getter/setter blocks if present. * *

      Parameters:
        `node` - the property node to visit