Top Description Fields Constructors Methods
groovy.grape

public Class GrabAnnotationTransformation

extends ClassCodeVisitorSupport
implements ASTTransformation, CompilationUnitAware
Class Inheritance
All Implemented Interfaces
groovy.transform.CompilationUnitAware, org.codehaus.groovy.transform.ASTTransformation
Annotations
@GroovyASTTransformation
phase:CONVERSION
Imports
groovy.lang.Grab, .GrabConfig, .GrabExclude, .GrabResolver, .Grapes, groovy.transform.CompilationUnitAware, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassCodeVisitorSupport, .ClassHelper, .ClassNode, .ImportNode, .ModuleNode, org.codehaus.groovy.ast.expr.ConstantExpression, .Expression, .ListExpression, .MapExpression, .StaticMethodCallExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .Statement, org.codehaus.groovy.control.CompilationUnit, .CompilePhase, .SourceUnit, org.codehaus.groovy.control.io.StringReaderSource, org.codehaus.groovy.runtime.DefaultGroovyMethods, org.codehaus.groovy.tools.GrapeUtil, org.codehaus.groovy.transform.ASTTransformation, .ASTTransformationVisitor, .AbstractASTTransformation, .GroovyASTTransformation, java.io.File, java.net.URI, .URISyntaxException, java.util.ArrayList, .Arrays, .Collection, .HashMap, .HashSet, .LinkedHashSet, .List, .Map, .Set, java.util.regex.Matcher, .Pattern

Transformation for declarative dependency management.

Field Summary

Modifier and TypeField and Description
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
pack-priv boolean
private static final Pattern
private static final String
pack-priv Boolean
pack-priv CompilationUnit
private static final String
pack-priv Boolean
private static final Collection<String>
private static final List<String>
private static final String
private static final String
private static final List<String>
private static final List<String>
private static final String
pack-priv Set<String>
pack-priv List<AnnotationNode>
private static final String
private static final String
private static final String
pack-priv Set<String>
pack-priv List<AnnotationNode>
private static final String
private static final String
private static final List<String>
private static final String
pack-priv Set<String>
pack-priv List<AnnotationNode>
private static final String
private static final String
private static final List<String>
private static final String
pack-priv Set<String>
pack-priv List<AnnotationNode>
private static final String
private static final String
private static final String
pack-priv Set<String>
pack-priv List<AnnotationNode>
pack-priv boolean
private static final Pattern
pack-priv ClassLoader
pack-priv SourceUnit
private static final ClassNode
private static final String
pack-priv Map<String, String>
private static final ClassNode

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static void
addGrabResolverAsStaticInitIfNeeded(ClassNode grapeClassNode, AnnotationNode node, List<Statement> grabResolverInitializers, Map<String, Object> grabResolverMap)

private void
private void
callGrabAsStaticInitIfNeeded(ClassNode classNode, ClassNode grapeClassNode, Collection<Map<String, Object>> grabMapsInit, Collection<Map<String, Object>> grabExcludeMaps)

private void
private void
private static void
checkForConvenienceForm(AnnotationNode node, boolean exclude)

private void
private void
private void
private static String
dotName(String className)

private void
public SourceUnit
public void
private static String
shortName(String className)

public void
visit(ASTNode[]
The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.
nodes
,
SourceUnit
The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.
source
)

Implements org.codehaus.groovy.transform.ASTTransformation.visit.

The method is invoked when an AST Transformation is active.
public void
visitAnnotations(AnnotatedNode
the AST node we are processing
node
)

Overrides org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitAnnotations.

Adds the annotation to the internal target list if a match is found.
Inherited from org.codehaus.groovy.ast.ClassCodeVisitorSupport:
addErrorvisitAnnotationvisitAssertStatementvisitBlockStatementvisitBreakStatementvisitCaseStatementvisitCatchStatementvisitClassvisitClassCodeContainervisitConstructorvisitConstructorOrMethodvisitContinueStatementvisitDeclarationExpressionvisitDoWhileLoopvisitExpressionStatementvisitFieldvisitForLoopvisitIfElsevisitImportsvisitMethodvisitObjectInitializerStatementsvisitPackagevisitPropertyvisitReturnStatementvisitStatementvisitSwitchvisitSynchronizedStatementvisitThrowStatementvisitTryCatchFinallyvisitWhileLoop

Field Detail

allowShortGrabback to summary
pack-priv boolean allowShortGrab
allowShortGrabConfigback to summary
pack-priv boolean allowShortGrabConfig
allowShortGrabExcludesback to summary
pack-priv boolean allowShortGrabExcludes
allowShortGrabResolverback to summary
pack-priv boolean allowShortGrabResolver
allowShortGrapesback to summary
pack-priv boolean allowShortGrapes
ATTRIBUTES_PATTERNback to summary
private static final Pattern ATTRIBUTES_PATTERN
AUTO_DOWNLOAD_SETTINGback to summary
private static final String AUTO_DOWNLOAD_SETTING
autoDownloadback to summary
pack-priv Boolean autoDownload
compilationUnitback to summary
pack-priv CompilationUnit compilationUnit
DISABLE_CHECKSUMS_SETTINGback to summary
private static final String DISABLE_CHECKSUMS_SETTING
disableChecksumsback to summary
pack-priv Boolean disableChecksums
GRAB_ALLback to summary
private static final Collection<String> GRAB_ALL
GRAB_BOOLEANback to summary
private static final List<String> GRAB_BOOLEAN
GRAB_CLASS_NAMEback to summary
private static final String GRAB_CLASS_NAME
GRAB_DOT_NAMEback to summary
private static final String GRAB_DOT_NAME
GRAB_OPTIONALback to summary
private static final List<String> GRAB_OPTIONAL
GRAB_REQUIREDback to summary
private static final List<String> GRAB_REQUIRED
GRAB_SHORT_NAMEback to summary
private static final String GRAB_SHORT_NAME
grabAliasesback to summary
pack-priv Set<String> grabAliases
grabAnnotationsback to summary
pack-priv List<AnnotationNode> grabAnnotations
GRABCONFIG_CLASS_NAMEback to summary
private static final String GRABCONFIG_CLASS_NAME
GRABCONFIG_DOT_NAMEback to summary
private static final String GRABCONFIG_DOT_NAME
GRABCONFIG_SHORT_NAMEback to summary
private static final String GRABCONFIG_SHORT_NAME
grabConfigAliasesback to summary
pack-priv Set<String> grabConfigAliases
grabConfigAnnotationsback to summary
pack-priv List<AnnotationNode> grabConfigAnnotations
GRABEXCLUDE_CLASS_NAMEback to summary
private static final String GRABEXCLUDE_CLASS_NAME
GRABEXCLUDE_DOT_NAMEback to summary
private static final String GRABEXCLUDE_DOT_NAME
GRABEXCLUDE_REQUIREDback to summary
private static final List<String> GRABEXCLUDE_REQUIRED
GRABEXCLUDE_SHORT_NAMEback to summary
private static final String GRABEXCLUDE_SHORT_NAME
grabExcludeAliasesback to summary
pack-priv Set<String> grabExcludeAliases
grabExcludeAnnotationsback to summary
pack-priv List<AnnotationNode> grabExcludeAnnotations
GRABRESOLVER_CLASS_NAMEback to summary
private static final String GRABRESOLVER_CLASS_NAME
GRABRESOLVER_DOT_NAMEback to summary
private static final String GRABRESOLVER_DOT_NAME
GRABRESOLVER_REQUIREDback to summary
private static final List<String> GRABRESOLVER_REQUIRED
GRABRESOLVER_SHORT_NAMEback to summary
private static final String GRABRESOLVER_SHORT_NAME
grabResolverAliasesback to summary
pack-priv Set<String> grabResolverAliases
grabResolverAnnotationsback to summary
pack-priv List<AnnotationNode> grabResolverAnnotations
GRAPES_CLASS_NAMEback to summary
private static final String GRAPES_CLASS_NAME
GRAPES_DOT_NAMEback to summary
private static final String GRAPES_DOT_NAME
GRAPES_SHORT_NAMEback to summary
private static final String GRAPES_SHORT_NAME
grapesAliasesback to summary
pack-priv Set<String> grapesAliases
grapesAnnotationsback to summary
pack-priv List<AnnotationNode> grapesAnnotations
initContextClassLoaderback to summary
pack-priv boolean initContextClassLoader
IVY_PATTERNback to summary
private static final Pattern IVY_PATTERN
loaderback to summary
pack-priv ClassLoader loader
sourceUnitback to summary
pack-priv SourceUnit sourceUnit
SYSTEM_CLASSNODEback to summary
private static final ClassNode SYSTEM_CLASSNODE
SYSTEM_PROPERTIES_SETTINGback to summary
private static final String SYSTEM_PROPERTIES_SETTING
systemPropertiesback to summary
pack-priv Map<String, String> systemProperties
THREAD_CLASSNODEback to summary
private static final ClassNode THREAD_CLASSNODE

Constructor Detail

GrabAnnotationTransformationback to summary
public GrabAnnotationTransformation()

Method Detail

addGrabResolverAsStaticInitIfNeededback to summary
private static void addGrabResolverAsStaticInitIfNeeded(ClassNode grapeClassNode, AnnotationNode node, List<Statement> grabResolverInitializers, Map<String, Object> grabResolverMap)
addInitContextClassLoaderIfNeededback to summary
private void addInitContextClassLoaderIfNeeded(ClassNode classNode)
callGrabAsStaticInitIfNeededback to summary
private void callGrabAsStaticInitIfNeeded(ClassNode classNode, ClassNode grapeClassNode, Collection<Map<String, Object>> grabMapsInit, Collection<Map<String, Object>> grabExcludeMaps)
checkForAutoDownloadback to summary
private void checkForAutoDownload(AnnotationNode node)
checkForClassLoaderback to summary
private void checkForClassLoader(AnnotationNode node)
checkForConvenienceFormback to summary
private static void checkForConvenienceForm(AnnotationNode node, boolean exclude)
checkForDisableChecksumsback to summary
private void checkForDisableChecksums(AnnotationNode node)
checkForInitContextClassLoaderback to summary
private void checkForInitContextClassLoader(AnnotationNode node)
checkForSystemPropertiesback to summary
private void checkForSystemProperties(AnnotationNode node)
dotNameback to summary
private static String dotName(String className)
extractGrabback to summary
private void extractGrab(Expression init, ConstantExpression ce)
getSourceUnitback to summary
public SourceUnit getSourceUnit()

Implements abstract org.codehaus.groovy.ast.ClassCodeVisitorSupport.getSourceUnit.

setCompilationUnitback to summary
public void setCompilationUnit(final CompilationUnit compilationUnit)

Implements groovy.transform.CompilationUnitAware.setCompilationUnit.

shortNameback to summary
private static String shortName(String className)
visitback to summary
public void visit(ASTNode[] nodes, SourceUnit source)

Implements org.codehaus.groovy.transform.ASTTransformation.visit.

Doc from org.codehaus.groovy.transform.ASTTransformation.visit.

The method is invoked when an AST Transformation is active. For local transformations, it is invoked once each time the local annotation is encountered. For global transformations, it is invoked once for every source unit, which is typically a source file.

Parameters
nodes:ASTNode[]

The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.

source:SourceUnit

The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.

visitAnnotationsback to summary
public void visitAnnotations(AnnotatedNode node)

Overrides org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitAnnotations.

Adds the annotation to the internal target list if a match is found.

Parameters
node:AnnotatedNode

the AST node we are processing