Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.objectstyle.cayenne.access.trans
Class QualifierTranslator  view QualifierTranslator download QualifierTranslator.java

java.lang.Object
  extended byorg.objectstyle.cayenne.access.trans.QueryAssemblerHelper
      extended byorg.objectstyle.cayenne.access.trans.QualifierTranslator
All Implemented Interfaces:
org.objectstyle.cayenne.exp.TraversalHandler
Direct Known Subclasses:
TrimmingQualifierTranslator

public class QualifierTranslator
extends QueryAssemblerHelper
implements org.objectstyle.cayenne.exp.TraversalHandler

Translates query qualifier to SQL. Used as a helper class by query translators.


Field Summary
private static org.apache.log4j.Logger logObj
           
protected  boolean matchingObject
           
protected  DataObjectMatchTranslator objectMatchTranslator
           
private  java.lang.StringBuffer qualBuf
           
protected  boolean translateParentQual
           
private  org.objectstyle.cayenne.exp.ExpressionTraversal treeWalker
           
 
Fields inherited from class org.objectstyle.cayenne.access.trans.QueryAssemblerHelper
queryAssembler
 
Constructor Summary
QualifierTranslator()
           
QualifierTranslator(QueryAssembler queryAssembler)
           
 
Method Summary
private  void appendList(org.objectstyle.cayenne.exp.Expression listExpr, org.objectstyle.cayenne.map.DbAttribute paramDesc)
           
protected  void appendLiteral(java.lang.StringBuffer buf, java.lang.Object val, org.objectstyle.cayenne.map.DbAttribute attr, org.objectstyle.cayenne.exp.Expression parentExpression)
          Appends SQL code to the query buffer to handle val as a parameter to the PreparedStatement being built.
protected  void appendObjectMatch()
           
private  void appendRawSql(java.lang.Object sql)
           
protected  void detectObjectMatch(org.objectstyle.cayenne.exp.Expression exp)
          Called before processing an expression to initialize objectMatchTranslator if needed.
 java.lang.String doTranslation()
          Translates query qualifier to SQL WHERE clause.
 void endBinaryNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to close a bracket.
 void endListNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to close a bracket.
 void endTernaryNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to close a bracket.
 void endUnaryNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to close a bracket.
protected  org.objectstyle.cayenne.exp.Expression extractQualifier()
           
 void finishedChild(org.objectstyle.cayenne.exp.Expression node, int childIndex, boolean hasMoreChildren)
          Opportunity to insert an operation
 org.objectstyle.cayenne.map.ObjEntity getObjEntity()
           
 boolean isTranslateParentQual()
          Returns true if this translator will translate parent qualifier on call to doTranslation.
 void objectNode(java.lang.Object leaf, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to insert leaf node operand.
private  boolean parenthesisNeeded(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
           
protected  void processRelTermination(java.lang.StringBuffer buf, org.objectstyle.cayenne.map.DbRelationship rel)
          Handles case when a DB_NAME expression ends with relationship.
 void setTranslateParentQual(boolean translateParentQual)
          Configures translator to translate parent or main qualifier on call to doTranslation.
 void startBinaryNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to open a bracket.
 void startListNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to open a bracket.
 void startTernaryNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to open a bracket.
 void startUnaryNode(org.objectstyle.cayenne.exp.Expression node, org.objectstyle.cayenne.exp.Expression parentNode)
          Opportunity to open a bracket
 
Methods inherited from class org.objectstyle.cayenne.access.trans.QueryAssemblerHelper
appendDbPath, appendLiteralDirect, appendObjPath, getDbEntity, getQueryAssembler, paramsDbType, processColumn, processColumn, processColumn, processRelTermination, setQueryAssembler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logObj

private static org.apache.log4j.Logger logObj

treeWalker

private org.objectstyle.cayenne.exp.ExpressionTraversal treeWalker

qualBuf

private java.lang.StringBuffer qualBuf

translateParentQual

protected boolean translateParentQual

objectMatchTranslator

protected DataObjectMatchTranslator objectMatchTranslator

matchingObject

protected boolean matchingObject
Constructor Detail

QualifierTranslator

public QualifierTranslator()

QualifierTranslator

public QualifierTranslator(QueryAssembler queryAssembler)
Method Detail

doTranslation

public java.lang.String doTranslation()
Translates query qualifier to SQL WHERE clause. Qualifier is obtained from queryAssembler object.

Specified by:
doTranslation in class QueryAssemblerHelper

extractQualifier

protected org.objectstyle.cayenne.exp.Expression extractQualifier()

detectObjectMatch

protected void detectObjectMatch(org.objectstyle.cayenne.exp.Expression exp)
Called before processing an expression to initialize objectMatchTranslator if needed.


appendObjectMatch

protected void appendObjectMatch()

finishedChild

public void finishedChild(org.objectstyle.cayenne.exp.Expression node,
                          int childIndex,
                          boolean hasMoreChildren)
Opportunity to insert an operation

Specified by:
finishedChild in interface org.objectstyle.cayenne.exp.TraversalHandler

startUnaryNode

public void startUnaryNode(org.objectstyle.cayenne.exp.Expression node,
                           org.objectstyle.cayenne.exp.Expression parentNode)
Opportunity to open a bracket

Specified by:
startUnaryNode in interface org.objectstyle.cayenne.exp.TraversalHandler

startBinaryNode

public void startBinaryNode(org.objectstyle.cayenne.exp.Expression node,
                            org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to open a bracket.

Specified by:
startBinaryNode in interface org.objectstyle.cayenne.exp.TraversalHandler

startTernaryNode

public void startTernaryNode(org.objectstyle.cayenne.exp.Expression node,
                             org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to open a bracket.

Specified by:
startTernaryNode in interface org.objectstyle.cayenne.exp.TraversalHandler

endUnaryNode

public void endUnaryNode(org.objectstyle.cayenne.exp.Expression node,
                         org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to close a bracket.

Specified by:
endUnaryNode in interface org.objectstyle.cayenne.exp.TraversalHandler

endBinaryNode

public void endBinaryNode(org.objectstyle.cayenne.exp.Expression node,
                          org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to close a bracket.

Specified by:
endBinaryNode in interface org.objectstyle.cayenne.exp.TraversalHandler

endTernaryNode

public void endTernaryNode(org.objectstyle.cayenne.exp.Expression node,
                           org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to close a bracket.

Specified by:
endTernaryNode in interface org.objectstyle.cayenne.exp.TraversalHandler

objectNode

public void objectNode(java.lang.Object leaf,
                       org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to insert leaf node operand.

Specified by:
objectNode in interface org.objectstyle.cayenne.exp.TraversalHandler

parenthesisNeeded

private boolean parenthesisNeeded(org.objectstyle.cayenne.exp.Expression node,
                                  org.objectstyle.cayenne.exp.Expression parentNode)

appendRawSql

private void appendRawSql(java.lang.Object sql)

appendList

private final void appendList(org.objectstyle.cayenne.exp.Expression listExpr,
                              org.objectstyle.cayenne.map.DbAttribute paramDesc)

isTranslateParentQual

public boolean isTranslateParentQual()
Returns true if this translator will translate parent qualifier on call to doTranslation.


setTranslateParentQual

public void setTranslateParentQual(boolean translateParentQual)
Configures translator to translate parent or main qualifier on call to doTranslation.


getObjEntity

public org.objectstyle.cayenne.map.ObjEntity getObjEntity()
Overrides:
getObjEntity in class QueryAssemblerHelper

endListNode

public void endListNode(org.objectstyle.cayenne.exp.Expression node,
                        org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to close a bracket.

Specified by:
endListNode in interface org.objectstyle.cayenne.exp.TraversalHandler

startListNode

public void startListNode(org.objectstyle.cayenne.exp.Expression node,
                          org.objectstyle.cayenne.exp.Expression parentNode)
Description copied from interface: org.objectstyle.cayenne.exp.TraversalHandler
Opportunity to open a bracket.

Specified by:
startListNode in interface org.objectstyle.cayenne.exp.TraversalHandler

appendLiteral

protected void appendLiteral(java.lang.StringBuffer buf,
                             java.lang.Object val,
                             org.objectstyle.cayenne.map.DbAttribute attr,
                             org.objectstyle.cayenne.exp.Expression parentExpression)
Description copied from class: QueryAssemblerHelper
Appends SQL code to the query buffer to handle val as a parameter to the PreparedStatement being built. Adds val into QueryAssembler parameter list.

If val is null, "NULL" is appended to the query.

If val is a DataObject, its primary key value is used as a parameter. Only objects with a single column primary key can be used.

Overrides:
appendLiteral in class QueryAssemblerHelper

processRelTermination

protected void processRelTermination(java.lang.StringBuffer buf,
                                     org.objectstyle.cayenne.map.DbRelationship rel)
Description copied from class: QueryAssemblerHelper
Handles case when a DB_NAME expression ends with relationship. If this is a "to many" relationship, a join is added and a column expression for the target entity primary key. If this is a "to one" relationship, column expresion for the source foreign key is added.

Overrides:
processRelTermination in class QueryAssemblerHelper