Package: org.codehaus.groovy.control.customizers

## [Java] Class SourceAwareCustomizer

- org.codehaus.groovy.control.customizers.SourceAwareCustomizer

- A base class for customizers which only have to be applied on specific source units. This is for example useful if you want a customizer to be applied only for files matching some extensions.

  For convenience, this class implements several methods that you may extend to customize the behaviour of this utility. For example, if you want to apply a customizer only for classes matching the '.foo' file extension, then you only have to override the acceptExtension(String) method:

      return "foo".equals(extension)

  Since:
    2.1.0

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class DelegatingCustomizer` | `delegate`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `SourceAwareCustomizer (CompilationCustomizer delegate)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `boolean` | `accept(String fileName)`
    `` | `boolean` | `acceptBaseName(String baseName)`
    `` | `boolean` | `acceptClass(ClassNode cnode)`
    `` | `boolean` | `acceptExtension(String extension)`
    `` | `boolean` | `acceptSource(org.codehaus.groovy.control.SourceUnit unit)`
    `` | `void` | `call(org.codehaus.groovy.control.SourceUnit source, GeneratorContext context, ClassNode classNode)`
    `` | `void` | `setBaseNameValidator(Closure<Boolean> baseNameValidator)`
    `` | `void` | `setClassValidator(Closure<Boolean> classValidator)`
    `` | `void` | `setExtensionValidator(Closure<Boolean> extensionValidator)`
    `` | `void` | `setSourceUnitValidator(Closure<Boolean> sourceUnitValidator)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class DelegatingCustomizer` | `call`
    `class CompilationCustomizer` | `getPhase`
    `class org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation` | `org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#needSortedInput(), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#call(org.codehaus.groovy.control.SourceUnit, org.codehaus.groovy.classgen.GeneratorContext, org.codehaus.groovy.ast.ClassNode), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#wait(long), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#wait(long, int), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#wait(), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#equals(java.lang.Object), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#toString(), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#hashCode(), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#getClass(), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#notify(), org.codehaus.groovy.control.CompilationUnit$PrimaryClassNodeOperation#notifyAll()`

- - ### Constructor Detail

    - #### public SourceAwareCustomizer(CompilationCustomizer delegate)

  - ### Method Detail

    - #### public boolean accept(String fileName)

    - #### public boolean acceptBaseName(String baseName)

    - #### public boolean acceptClass(ClassNode cnode)

    - #### public boolean acceptExtension(String extension)

    - #### public boolean acceptSource(org.codehaus.groovy.control.SourceUnit unit)

    - #### @Override public void call(org.codehaus.groovy.control.SourceUnit source, GeneratorContext context, ClassNode classNode)

    - #### public void setBaseNameValidator(Closure<Boolean> baseNameValidator)

    - #### public void setClassValidator(Closure<Boolean> classValidator)

    - #### public void setExtensionValidator(Closure<Boolean> extensionValidator)

    - #### public void setSourceUnitValidator(Closure<Boolean> sourceUnitValidator)