Package: org.grails.compiler.injection

## [Groovy] Class GlobalGrailsClassInjectorTransformation

- org.grails.compiler.injection.GlobalGrailsClassInjectorTransformation

- All Implemented Interfaces and Traits:
    org.codehaus.groovy.transform.ASTTransformation, groovy.transform.CompilationUnitAware

      @org.codehaus.groovy.transform.GroovyASTTransformation(phase: CompilePhase.CANONICALIZATION)
      @groovy.transform.CompileStatic
      class GlobalGrailsClassInjectorTransformation
      extends java.lang.Object
      implements org.codehaus.groovy.transform.ASTTransformation, groovy.transform.CompilationUnitAware

  A global transformation that applies Grails' transformations to classes within a Grails project

  Authors:
    Graeme Rocher
  Since:
    3.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static org.codehaus.groovy.ast.ClassNode` | `APPLICATION_CONTEXT_COMMAND_CLASS` |
    `static org.codehaus.groovy.ast.ClassNode` | `ARTEFACT_CLASS_NODE` |
    `static org.codehaus.groovy.ast.ClassNode` | `ARTEFACT_HANDLER_CLASS` |
    `static org.codehaus.groovy.ast.ClassNode` | `TRAIT_INJECTOR_CLASS` |
    `private org.codehaus.groovy.control.CompilationUnit` | `compilationUnit` |
    `private static java.util.Set<java.lang.String>` | `pendingPluginClasses` |
    `private static java.util.Collection<java.lang.String>` | `pluginExcludes` |

  - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `org.codehaus.groovy.control.CompilationUnit` | `compilationUnit`
    `static java.util.Set<java.lang.String>` | `pendingPluginClasses`
    `static java.util.Collection<java.lang.String>` | `pluginExcludes`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `GlobalGrailsClassInjectorTransformation ()`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `private static java.util.Properties` | `addToProps(java.util.Properties props, java.lang.String superTypeName, java.lang.String classNodeNames)`
    `` | `private static java.io.File` | `findSourceDirectory(java.io.File compilationTargetDirectory)`
    `` | `protected static void` | `generatePluginXml(org.codehaus.groovy.ast.ClassNode pluginClassNode, java.lang.String pluginVersion, java.util.Set<java.lang.String> transformedClasses, java.io.File pluginXmlFile)`
    `` | `protected static void` | `handleExcludes(groovy.util.slurpersupport.GPathResult pluginXml)`
    `` | `private static void` | `loadFromFile(java.util.Properties props, java.io.File factoriesFile)`
    `` | `static java.io.File` | `resolveCompilationTargetDirectory(org.codehaus.groovy.control.SourceUnit source)`
    `` | `static boolean` | `updateGrailsFactoriesWithType(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode superType, java.io.File compilationTargetDirectory)`
    `` | `static void` | `updatePluginXml(org.codehaus.groovy.ast.ClassNode pluginClassNode, java.lang.String pluginVersion, java.io.File pluginXmlFile, java.util.Collection<java.lang.String> artefactClasses)`
    `` | `void` | `visit(org.codehaus.groovy.ast.ASTNode[] nodes, org.codehaus.groovy.control.SourceUnit source)`
    `` | `static void` | `writePluginXml(org.codehaus.groovy.ast.ClassNode pluginClassNode, java.lang.String pluginVersion, java.io.File pluginXml, java.util.Collection<java.lang.String> artefactClasses)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### public static final org.codehaus.groovy.ast.ClassNode APPLICATION_CONTEXT_COMMAND_CLASS

    - #### public static final org.codehaus.groovy.ast.ClassNode ARTEFACT_CLASS_NODE

    - #### public static final org.codehaus.groovy.ast.ClassNode ARTEFACT_HANDLER_CLASS

    - #### public static final org.codehaus.groovy.ast.ClassNode TRAIT_INJECTOR_CLASS

    - #### private org.codehaus.groovy.control.CompilationUnit compilationUnit

    - #### private static java.util.Set<java.lang.String> pendingPluginClasses

    - #### private static java.util.Collection<java.lang.String> pluginExcludes

  - ### Property Detail

    - #### org.codehaus.groovy.control.CompilationUnit compilationUnit

    - #### static java.util.Set<java.lang.String> pendingPluginClasses

    - #### static java.util.Collection<java.lang.String> pluginExcludes

  - ### Constructor Detail

    - #### GlobalGrailsClassInjectorTransformation()

  - ### Method Detail

    - #### private static java.util.Properties addToProps(java.util.Properties props, java.lang.String superTypeName, java.lang.String classNodeNames)

    - #### private static java.io.File findSourceDirectory(java.io.File compilationTargetDirectory)

    - #### protected static void generatePluginXml(org.codehaus.groovy.ast.ClassNode pluginClassNode, java.lang.String pluginVersion, java.util.Set<java.lang.String> transformedClasses, java.io.File pluginXmlFile)

    - #### @groovy.transform.CompileDynamic protected static void handleExcludes(groovy.util.slurpersupport.GPathResult pluginXml)

    - #### private static void loadFromFile(java.util.Properties props, java.io.File factoriesFile)

    - #### static java.io.File resolveCompilationTargetDirectory(org.codehaus.groovy.control.SourceUnit source)

    - #### static boolean updateGrailsFactoriesWithType(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode superType, java.io.File compilationTargetDirectory)

    - #### @groovy.transform.CompileDynamic static void updatePluginXml(org.codehaus.groovy.ast.ClassNode pluginClassNode, java.lang.String pluginVersion, java.io.File pluginXmlFile, java.util.Collection<java.lang.String> artefactClasses)

    - #### @java.lang.Override void visit(org.codehaus.groovy.ast.ASTNode[] nodes, org.codehaus.groovy.control.SourceUnit source)

    - #### @groovy.transform.CompileDynamic static void writePluginXml(org.codehaus.groovy.ast.ClassNode pluginClassNode, java.lang.String pluginVersion, java.io.File pluginXml, java.util.Collection<java.lang.String> artefactClasses)