org.codehaus.groovy.transform
Class NewifyASTTransformation
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeExpressionTransformer
org.codehaus.groovy.transform.NewifyASTTransformation
- All Implemented Interfaces:
- ExpressionTransformer, GroovyClassVisitor, GroovyCodeVisitor, ASTTransformation
public class NewifyASTTransformation
- extends ClassCodeExpressionTransformer
- implements ASTTransformation
Handles generation of code for the @Newify annotation.
- Author:
- Paul King
Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer |
visitAnnotations, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop |
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport |
addError, visitBlockStatement, visitBreakStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitMethod, visitStatement, visitTryCatchFinally |
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport |
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitDeclarationExpression, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitRegexExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MY_TYPE
private static final ClassNode MY_TYPE
MY_NAME
private static final java.lang.String MY_NAME
source
private SourceUnit source
classesToNewify
private ListExpression classesToNewify
auto
private boolean auto
NewifyASTTransformation
public NewifyASTTransformation()
visit
public void visit(ASTNode[] nodes,
SourceUnit source)
- Description copied from interface:
ASTTransformation
- The call made when the compiler encounters an AST Transformation Annotation
- Specified by:
visit
in interface ASTTransformation
- Parameters:
nodes
- The ASTnodes when the call was triggeredsource
- The source unit being compiled
determineAutoFlag
private boolean determineAutoFlag(Expression autoExpr)
determineClassesToNewify
private ListExpression determineClassesToNewify(Expression expr)
transform
public Expression transform(Expression expr)
- Description copied from interface:
ExpressionTransformer
- Transforms the given expression into another expression
- Specified by:
transform
in interface ExpressionTransformer
- Overrides:
transform
in class ClassCodeExpressionTransformer
newifyClass
private void newifyClass(AnnotatedNode parent,
boolean autoFlag,
ListExpression list)
newifyMethodOrField
private void newifyMethodOrField(AnnotatedNode parent,
boolean autoFlag,
ListExpression list)
checkDuplicateNameClashes
private void checkDuplicateNameClashes(ListExpression list)
checkAutoClash
private void checkAutoClash(boolean autoFlag)
checkClassLevelClashes
private void checkClassLevelClashes(ListExpression list)
findClassWithMatchingBasename
private boolean findClassWithMatchingBasename(java.lang.String nameWithoutPackage)
isNewifyCandidate
private boolean isNewifyCandidate(MethodCallExpression mce)
isNewMethodStyle
private boolean isNewMethodStyle(MethodCallExpression mce)
transformMethodCall
private Expression transformMethodCall(MethodCallExpression mce,
Expression args)
findMatchingCandidateClass
private ClassNode findMatchingCandidateClass(MethodCallExpression mce)
internalError
private void internalError(java.lang.String message)
getSourceUnit
protected SourceUnit getSourceUnit()
- Specified by:
getSourceUnit
in class ClassCodeVisitorSupport
Copyright © ${year} The Codehaus. All Rights Reserved.