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 classSourceAwareCustomizerFactory.SourceOptions
-
Constructor Summary
Constructors Constructor Description SourceAwareCustomizerFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectnewInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes)java.lang.ObjectpostCompleteNode(FactoryBuilderSupport factory, java.lang.Object parent, java.lang.Object node)voidsetChild(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)-
Methods inherited from class groovy.util.AbstractFactory
isHandlesNodeChildren, isLeaf, onFactoryRegistration, onHandleNodeAttributes, onNodeChildren, onNodeCompleted, setParent
-
-
-
-
Method Detail
-
newInstance
public java.lang.Object newInstance(FactoryBuilderSupport builder, java.lang.Object name, java.lang.Object value, java.util.Map attributes) throws java.lang.InstantiationException, java.lang.IllegalAccessException
- Specified by:
newInstancein 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:
java.lang.InstantiationException- if attempting to instantiate an interface or abstract classjava.lang.IllegalAccessException- if the instance can't be created due to a security violation
-
setChild
public void setChild(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)
- Specified by:
setChildin interfaceFactory- Overrides:
setChildin classAbstractFactory
-
postCompleteNode
public java.lang.Object postCompleteNode(FactoryBuilderSupport factory, java.lang.Object parent, java.lang.Object node)
- Specified by:
postCompleteNodein interfacePostCompletionFactory
-
-