org.codehaus.groovy.ast

## Class MethodInvocationTrap

- java.lang.Object
- - org.codehaus.groovy.ast.CodeVisitorSupport
  - - org.codehaus.groovy.ast.MethodInvocationTrap

- All Implemented Interfaces:
    GroovyCodeVisitor

      public abstract class MethodInvocationTrap
      extends CodeVisitorSupport

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ReaderSource` | `source`
    `protected SourceUnit` | `sourceUnit`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MethodInvocationTrap(ReaderSource source, SourceUnit sourceUnit)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addError(String msg, ASTNode expr)` Reports an error back to the source unit.
    `protected String` | `convertClosureToSource(ClosureExpression expression)` Converts a ClosureExpression into the String source.
    `protected abstract boolean` | `handleTargetMethodCallExpression(MethodCallExpression call)`
    `protected abstract boolean` | `isBuildInvocation(MethodCallExpression call)`
    `void` | `visitMethodCallExpression(MethodCallExpression call)` Attempts to find AstBuilder 'from code' invocations.

    - ### Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport

      `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, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### source

          protected final ReaderSource source

    - #### sourceUnit

          protected final SourceUnit sourceUnit

  - ### Constructor Detail

    - #### MethodInvocationTrap

          public MethodInvocationTrap(ReaderSource source,
                                      SourceUnit sourceUnit)

  - ### Method Detail

    - #### visitMethodCallExpression

          public void visitMethodCallExpression(MethodCallExpression call)

      Attempts to find AstBuilder 'from code' invocations. When found, converts them into calls to the 'from string' approach.
      Specified by:
        `visitMethodCallExpression` in interface `GroovyCodeVisitor`
      Overrides:
        `visitMethodCallExpression` in class `CodeVisitorSupport`
      Parameters:
        `call` - the method call expression that may or may not be an AstBuilder 'from code' invocation.

    - #### addError

          protected void addError(String msg,
                                  ASTNode expr)

      Reports an error back to the source unit.
      Parameters:
        `msg` - the error message
        `expr` - the expression that caused the error message.

    - #### convertClosureToSource

          protected String convertClosureToSource(ClosureExpression expression)

      Converts a ClosureExpression into the String source.
      Parameters:
        `expression` - a closure
      Returns:
        the source the closure was created from

    - #### handleTargetMethodCallExpression

          protected abstract boolean handleTargetMethodCallExpression(MethodCallExpression call)

    - #### isBuildInvocation

          protected abstract boolean isBuildInvocation(MethodCallExpression call)