Package 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
Description
`SourceAwareCustomizer(CompilationCustomizer delegate)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`accept(String fileName)`
`boolean`
`acceptBaseName(String baseName)`
`boolean`
`acceptClass(ClassNode cnode)`
`boolean`
`acceptExtension(String extension)`
`boolean`
`acceptSource(SourceUnit unit)`
`void`
`call(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)`

### 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 Details

### SourceAwareCustomizer

public SourceAwareCustomizer(CompilationCustomizer delegate)

## Method Details

### call

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

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

### setBaseNameValidator

public void setBaseNameValidator(Closure<Boolean> baseNameValidator)

### setExtensionValidator

public void setExtensionValidator(Closure<Boolean> extensionValidator)

### setSourceUnitValidator

public void setSourceUnitValidator(Closure<Boolean> sourceUnitValidator)

### setClassValidator

public void setClassValidator(Closure<Boolean> classValidator)

### accept

public boolean accept(String fileName)

### acceptClass

public boolean acceptClass(ClassNode cnode)

### acceptSource

public boolean acceptSource(SourceUnit unit)

### acceptExtension

public boolean acceptExtension(String extension)

### acceptBaseName

public boolean acceptBaseName(String baseName)