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 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 Class SummaryNested Classes Modifier and Type Class Description static classSourceAwareCustomizerFactory.SourceOptions
- 
Constructor SummaryConstructors Constructor Description SourceAwareCustomizerFactory()
- 
Method SummaryModifier 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.AbstractFactoryisHandlesNodeChildren, isLeaf, onFactoryRegistration, onHandleNodeAttributes, onNodeChildren, onNodeCompleted, setParentMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- 
Constructor Details- 
SourceAwareCustomizerFactorypublic SourceAwareCustomizerFactory()
 
- 
- 
Method Details- 
newInstancepublic 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 interface- Factory
- Parameters:
- builder- the FactoryBuilder
- name- the name of the node being built
- value- the 'value' argument in the build node
- attributes- 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 class
- java.lang.IllegalAccessException- if the instance can't be created due to a security violation
 
- 
setChildpublic void setChild(FactoryBuilderSupport builder, java.lang.Object parent, java.lang.Object child)- Specified by:
- setChildin interface- Factory
- Overrides:
- setChildin class- AbstractFactory
 
- 
postCompleteNodepublic java.lang.Object postCompleteNode(FactoryBuilderSupport factory, java.lang.Object parent, java.lang.Object node)- Specified by:
- postCompleteNodein interface- PostCompletionFactory
 
 
-