Groovy 2.2.0

org.codehaus.groovy.control.customizers.builder
[Java] Class SourceAwareCustomizerFactory

java.lang.Object
  groovy.util.AbstractFactory
      org.codehaus.groovy.control.customizers.builder.SourceAwareCustomizerFactory
All Implemented Interfaces:
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)
     }
 
Authors:
Cedric Champeau


Nested Class Summary
static class SourceAwareCustomizerFactory.SourceOptions

 
Method Summary
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 AbstractFactory
isHandlesNodeChildren, isLeaf, onFactoryRegistration, onHandleNodeAttributes, onNodeChildren, onNodeCompleted, setChild, setParent
 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Method Detail

newInstance

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


postCompleteNode

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


setChild

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


 

Copyright © 2003-2013 The Codehaus. All rights reserved.