org.codehaus.groovy.control.customizers

## Class SourceAwareCustomizer

- java.lang.Object
- - org.codehaus.groovy.control.CompilationUnit.PrimaryClassNodeOperation
  - - org.codehaus.groovy.control.customizers.CompilationCustomizer
    - - org.codehaus.groovy.control.customizers.DelegatingCustomizer
      - - org.codehaus.groovy.control.customizers.SourceAwareCustomizer

    public class SourceAwareCustomizer
    extends DelegatingCustomizer

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
Author:
  Cedric Champeau

### Field Summary

### Fields inherited from class org.codehaus.groovy.control.customizers.DelegatingCustomizer

`delegate`

### Constructor Summary

Constructors
Constructor and Description
`SourceAwareCustomizer(CompilationCustomizer delegate)`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `accept(java.lang.String fileName)`
`boolean` `acceptBaseName(java.lang.String baseName)`
`boolean` `acceptClass(ClassNode cnode)`
`boolean` `acceptExtension(java.lang.String extension)`
`boolean` `acceptSource(SourceUnit unit)`
`void` `call(SourceUnit source, GeneratorContext context, ClassNode classNode)`
`void` `setBaseNameValidator(Closure<java.lang.Boolean> baseNameValidator)`
`void` `setClassValidator(Closure<java.lang.Boolean> classValidator)`
`void` `setExtensionValidator(Closure<java.lang.Boolean> extensionValidator)`
`void` `setSourceUnitValidator(Closure<java.lang.Boolean> sourceUnitValidator)`

### Methods inherited from class org.codehaus.groovy.control.customizers.CompilationCustomizer

`getPhase`

### Methods inherited from class org.codehaus.groovy.control.CompilationUnit.PrimaryClassNodeOperation

`needSortedInput`

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

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

### Constructor Detail

#### SourceAwareCustomizer

    public SourceAwareCustomizer(CompilationCustomizer delegate)

### Method Detail

#### call

    public void call(SourceUnit source,
                     GeneratorContext context,
                     ClassNode classNode)
              throws CompilationFailedException

Overrides:
  `call` in class `DelegatingCustomizer`
Throws:
  `CompilationFailedException`

#### setBaseNameValidator

    public void setBaseNameValidator(Closure<java.lang.Boolean> baseNameValidator)

#### setExtensionValidator

    public void setExtensionValidator(Closure<java.lang.Boolean> extensionValidator)

#### setSourceUnitValidator

    public void setSourceUnitValidator(Closure<java.lang.Boolean> sourceUnitValidator)

#### setClassValidator

    public void setClassValidator(Closure<java.lang.Boolean> classValidator)

#### accept

    public boolean accept(java.lang.String fileName)

#### acceptClass

    public boolean acceptClass(ClassNode cnode)

#### acceptSource

    public boolean acceptSource(SourceUnit unit)

#### acceptExtension

    public boolean acceptExtension(java.lang.String extension)

#### acceptBaseName

    public boolean acceptBaseName(java.lang.String baseName)