org.grails.datastore.gorm.query.transform
Class DetachedCriteriaTransformer

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.ast.ClassCodeVisitorSupport
          extended by org.grails.datastore.gorm.query.transform.DetachedCriteriaTransformer
All Implemented Interfaces:
org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor

public class DetachedCriteriaTransformer
extends org.codehaus.groovy.ast.ClassCodeVisitorSupport

ClassCodeVisitorSupport that transforms where methods into detached criteria queries

Since:
1.0

Field Summary
static java.lang.String AND_OPERATOR
           
static java.util.Set<java.lang.String> CANDIDATE_METHODS_WHERE_ONLY
           
static org.codehaus.groovy.ast.ClassNode DETACHED_CRITERIA_CLASS_NODE
           
static java.lang.String EQUALS_OPERATOR
           
static org.codehaus.groovy.ast.ClassNode FUNCTION_CALL_CRITERION
           
static java.lang.String IS_NULL_CRITERION
           
static java.lang.String OR_OPERATOR
           
static org.codehaus.groovy.ast.expr.ConstantExpression WHERE_LAZY
           
 
Method Summary
protected  org.codehaus.groovy.control.SourceUnit getSourceUnit()
           
protected  boolean isDomainClass(org.codehaus.groovy.ast.ClassNode classNode)
           
protected  void transformClosureExpression(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.ClosureExpression closureExpression)
           
 void visitClass(org.codehaus.groovy.ast.ClassNode node)
           
 void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expression)
           
 void visitField(org.codehaus.groovy.ast.FieldNode node)
           
 void visitMethod(org.codehaus.groovy.ast.MethodNode node)
           
 void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
           
 void visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression call)
           
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDoWhileLoop, visitExpressionStatement, visitForLoop, visitIfElse, visitImports, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AND_OPERATOR

public static final java.lang.String AND_OPERATOR
See Also:
Constant Field Values

OR_OPERATOR

public static final java.lang.String OR_OPERATOR
See Also:
Constant Field Values

DETACHED_CRITERIA_CLASS_NODE

public static final org.codehaus.groovy.ast.ClassNode DETACHED_CRITERIA_CLASS_NODE

CANDIDATE_METHODS_WHERE_ONLY

public static final java.util.Set<java.lang.String> CANDIDATE_METHODS_WHERE_ONLY

FUNCTION_CALL_CRITERION

public static final org.codehaus.groovy.ast.ClassNode FUNCTION_CALL_CRITERION

EQUALS_OPERATOR

public static final java.lang.String EQUALS_OPERATOR
See Also:
Constant Field Values

IS_NULL_CRITERION

public static final java.lang.String IS_NULL_CRITERION
See Also:
Constant Field Values

WHERE_LAZY

public static final org.codehaus.groovy.ast.expr.ConstantExpression WHERE_LAZY
Method Detail

visitClass

public void visitClass(org.codehaus.groovy.ast.ClassNode node)
Specified by:
visitClass in interface org.codehaus.groovy.ast.GroovyClassVisitor
Overrides:
visitClass in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitMethod

public void visitMethod(org.codehaus.groovy.ast.MethodNode node)
Specified by:
visitMethod in interface org.codehaus.groovy.ast.GroovyClassVisitor
Overrides:
visitMethod in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitField

public void visitField(org.codehaus.groovy.ast.FieldNode node)
Specified by:
visitField in interface org.codehaus.groovy.ast.GroovyClassVisitor
Overrides:
visitField in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitDeclarationExpression

public void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expression)
Specified by:
visitDeclarationExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitDeclarationExpression in class org.codehaus.groovy.ast.ClassCodeVisitorSupport

visitMethodCallExpression

public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
Specified by:
visitMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

visitStaticMethodCallExpression

public void visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression call)
Specified by:
visitStaticMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
Overrides:
visitStaticMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport

transformClosureExpression

protected void transformClosureExpression(org.codehaus.groovy.ast.ClassNode classNode,
                                          org.codehaus.groovy.ast.expr.ClosureExpression closureExpression)

isDomainClass

protected boolean isDomainClass(org.codehaus.groovy.ast.ClassNode classNode)

getSourceUnit

protected org.codehaus.groovy.control.SourceUnit getSourceUnit()
Specified by:
getSourceUnit in class org.codehaus.groovy.ast.ClassCodeVisitorSupport