ClassInjector (Grails 4.0.0)
Date: 2019-07-11

Package: grails.compiler.ast

## [Java] Interface ClassInjector

- When implemented allows additional properties to be injected into Grails classes at compile time (ie when they are loaded by the GroovyClassLoader).

  Authors:
    Graeme Rocher
  Since:
    0.2

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `int` | `PRIVATE_STATIC_MODIFIER` |

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `performInjection(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.classgen.GeneratorContext context, org.codehaus.groovy.ast.ClassNode classNode)` Handles injection of properties, methods etc. into a class.
    `` | `void` | `performInjection(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)` Handles injection of properties, methods etc. into a class.
    `` | `void` | `performInjectionOnAnnotatedClass(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)` Handles injection of properties, methods etc. into a class.
    `` | `boolean` | `shouldInject(java.net.URL url)` Returns whether this injector should inject

- - ### Field Detail

    - #### public int PRIVATE_STATIC_MODIFIER

  - ### Method Detail

    - #### public void performInjection(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.classgen.GeneratorContext context, org.codehaus.groovy.ast.ClassNode classNode)

      Handles injection of properties, methods etc. into a class.

      Parameters:
        `source` - The source unit
        `context` - The generator context
        `classNode` - The ClassNode instance

    - #### public void performInjection(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)

      Handles injection of properties, methods etc. into a class.

      Parameters:
        `source` - The source unit
        `classNode` - The ClassNode instance

    - #### public void performInjectionOnAnnotatedClass(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)

      Handles injection of properties, methods etc. into a class.

      Parameters:
        `source` - The source unit
        `classNode` - The ClassNode instance

    - #### public boolean shouldInject(java.net.URL url)

      Returns whether this injector should inject

      Parameters:
        `url` - The URL of the source file
      Returns:
        true if injection should occur