[Java] Class SourceAwareCustomizerFactory

  • org.codehaus.groovy.control.customizers.builder.SourceAwareCustomizerFactory
All Implemented Interfaces and Traits:
PostCompletionFactory
public class SourceAwareCustomizerFactory
extends AbstractFactory

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)
     }
 
Authors:
Cedric Champeau

Nested Class Summary

Nested classes
Modifiers Name Description
static class SourceAwareCustomizerFactory.SourceOptions

Methods Summary

Methods
Type Params Return Type Name and 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)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class AbstractFactory isHandlesNodeChildren, isLeaf, onFactoryRegistration, onHandleNodeAttributes, onNodeChildren, onNodeCompleted, setChild, setParent
class Object wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll

Method Detail

public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes)

public Object postCompleteNode(FactoryBuilderSupport factory, Object parent, Object node)

@Override public void setChild(FactoryBuilderSupport builder, Object parent, Object child)