Top Description Inners Constructors Methods
org.codehaus.groovy.control.customizers.builder

public Class SourceAwareCustomizerFactory

extends AbstractFactory
implements PostCompletionFactory
Class Inheritance
All Implemented Interfaces
org.codehaus.groovy.control.customizers.builder.PostCompletionFactory
Imports
groovy.lang.Closure, groovy.util.AbstractFactory, .FactoryBuilderSupport, org.codehaus.groovy.ast.ClassNode, org.codehaus.groovy.classgen.GeneratorContext, org.codehaus.groovy.control.CompilePhase, .SourceUnit, org.codehaus.groovy.control.customizers.CompilationCustomizer, .SourceAwareCustomizer, java.util.LinkedList, .List, .Map

Factory for use with CompilerCustomizationBuilder. Allows the construction of source aware customizers. Syntax:

    // apply CompileStatic AST annotation on .sgroovy files
    builder.source(extension: 'sgroovy') {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on .sgroovy or .sg files
    builder.source(extensions: ['sgroovy','sg']) {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on .sgroovy or .sg files
    builder.source(extensionValidator: { it.name in ['sgroovy','sg']}) {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on files whose name is 'foo'
    builder.source(basename: 'foo') {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on files whose name is 'foo' or 'bar'
    builder.source(basenames: ['foo', 'bar']) {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on files whose name is 'foo' or 'bar'
    builder.source(basenameValidator: { it in ['foo', 'bar'] }) {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on files that do not contain a class named 'Baz'
    builder.source(unitValidator: { unit -> !unit.AST.classes.any { it.name == 'Baz' } }) {
        ast(CompileStatic)
    }

    // apply CompileStatic AST annotation on class nodes that end with 'CS'
    builder.source(classValidator: { cn -> cn.name.endsWith('CS') }) {
        ast(CompileStatic)
    }

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static void
private static void
public Object
newInstance(final FactoryBuilderSupport
the FactoryBuilder
builder
,
final Object
the name of the node being built
name
,
final Object
the 'value' argument in the build node
value
,
final Map<K, V>
the attributes of the build arg
attributes
)

Implements groovy.util.Factory.newInstance.

public Object
public void
setChild(final FactoryBuilderSupport builder, final Object parent, final Object child)

Overrides groovy.util.AbstractFactory.setChild.

Implements groovy.util.Factory.setChild.

Inherited from groovy.util.AbstractFactory:
isHandlesNodeChildrenisLeafonFactoryRegistrationonHandleNodeAttributesonNodeChildrenonNodeCompletedsetParent

Constructor Detail

SourceAwareCustomizerFactoryback to summary
public SourceAwareCustomizerFactory()

Method Detail

addBasenameValidatorback to summary
private static void addBasenameValidator(final SourceAwareCustomizer sourceAwareCustomizer, final SourceAwareCustomizerFactory.SourceOptions data)
addExtensionValidatorback to summary
private static void addExtensionValidator(final SourceAwareCustomizer sourceAwareCustomizer, final SourceAwareCustomizerFactory.SourceOptions data)
newInstanceback to summary
public Object newInstance(final FactoryBuilderSupport builder, final Object name, final Object value, final Map<K, V> attributes) throws InstantiationException, IllegalAccessException

Implements groovy.util.Factory.newInstance.

Parameters
builder:FactoryBuilderSupport

Doc from groovy.util.Factory.newInstance.

the FactoryBuilder

name:Object

Doc from groovy.util.Factory.newInstance.

the name of the node being built

value:Object

Doc from groovy.util.Factory.newInstance.

the 'value' argument in the build node

attributes:Map<K, V>

Doc from groovy.util.Factory.newInstance.

the attributes of the build arg

Returns:Object

Doc from groovy.util.Factory.newInstance.

the object created for the builder

Exceptions
InstantiationException:

Doc from groovy.util.Factory.newInstance.

if attempting to instantiate an interface or abstract class

IllegalAccessException:

Doc from groovy.util.Factory.newInstance.

if the instance can't be created due to a security violation

postCompleteNodeback to summary
public Object postCompleteNode(final FactoryBuilderSupport factory, final Object parent, final Object node)

Implements org.codehaus.groovy.control.customizers.builder.PostCompletionFactory.postCompleteNode.

setChildback to summary
public void setChild(final FactoryBuilderSupport builder, final Object parent, final Object child)

Overrides groovy.util.AbstractFactory.setChild.

Implements groovy.util.Factory.setChild.

Annotations
@Override
org.codehaus.groovy.control.customizers.builder back to summary

public Class SourceAwareCustomizerFactory.SourceOptions

extends Object
Class Inheritance
  • java.lang.Object
  • org.codehaus.groovy.control.customizers.builder.SourceAwareCustomizerFactory.SourceOptions

Field Summary

Modifier and TypeField and Description
public String
public List<String>
public Closure<Boolean>
public Closure<Boolean>
public CompilationCustomizer
public String
public List<String>
public Closure<Boolean>
public Closure<Boolean>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

basenameback to summary
public String basename
basenamesback to summary
public List<String> basenames
basenameValidatorback to summary
public Closure<Boolean> basenameValidator
classValidatorback to summary
public Closure<Boolean> classValidator
delegateback to summary
public CompilationCustomizer delegate
extensionback to summary
public String extension
extensionsback to summary
public List<String> extensions
extensionValidatorback to summary
public Closure<Boolean> extensionValidator
unitValidatorback to summary
public Closure<Boolean> unitValidator

Constructor Detail

SourceOptionsback to summary
public SourceOptions()