Class SourceAwareCustomizerFactory
- java.lang.Object
-
- groovy.util.AbstractFactory
-
- org.codehaus.groovy.control.customizers.builder.SourceAwareCustomizerFactory
-
- All Implemented Interfaces:
Factory
,PostCompletionFactory
public class SourceAwareCustomizerFactory extends AbstractFactory implements PostCompletionFactory
Factory for use withCompilerCustomizationBuilder
. Allows the construction ofsource 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 Class Summary
Nested Classes Modifier and Type Class Description static class
SourceAwareCustomizerFactory.SourceOptions
-
Constructor Summary
Constructors Constructor Description SourceAwareCustomizerFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes)
Object
postCompleteNode(FactoryBuilderSupport factory, Object parent, Object node)
void
setChild(FactoryBuilderSupport builder, Object parent, Object child)
-
Methods inherited from class groovy.util.AbstractFactory
isHandlesNodeChildren, isLeaf, onFactoryRegistration, onHandleNodeAttributes, onNodeChildren, onNodeCompleted, setParent
-
-
-
-
Method Detail
-
newInstance
public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) throws InstantiationException, IllegalAccessException
- Specified by:
newInstance
in interfaceFactory
- Parameters:
builder
- the FactoryBuildername
- the name of the node being builtvalue
- the 'value' argument in the build nodeattributes
- the attributes of the build arg- Returns:
- the object created for the builder
- Throws:
InstantiationException
- if attempting to instantiate an interface or abstract classIllegalAccessException
- if the instance can't be created due to a security violation
-
setChild
public void setChild(FactoryBuilderSupport builder, Object parent, Object child)
- Specified by:
setChild
in interfaceFactory
- Overrides:
setChild
in classAbstractFactory
-
postCompleteNode
public Object postCompleteNode(FactoryBuilderSupport factory, Object parent, Object node)
- Specified by:
postCompleteNode
in interfacePostCompletionFactory
-
-