Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.access.trans
Class QueryAssemblerHelper

    java.lang.Object
      org.apache.cayenne.access.trans.QueryAssemblerHelper

Direct Known Subclasses:
  OrderingTranslator, QualifierTranslator

    public abstract class QueryAssemblerHelper

extends java.lang.Object

Translates parts of the query to SQL. Always works in the context of parent Translator.

Field Summary
`protected java.lang.Appendable` | `out`
`protected QueryAssembler` | `queryAssembler`
`protected QuotingStrategy` | `strategy`

Constructor Summary
`QueryAssemblerHelper(QueryAssembler queryAssembler)` Creates QueryAssemblerHelper initializing with parent `QueryAssembler` and output buffer object.

Method Summary
`protected void` | `appendDbPath(Expression pathExp)`
`protected void` | `appendLikeEscapeCharacter(PatternMatchNode patternMatchNode)` Outputs the standard JDBC (database agnostic) expression for supplying the escape character to the database server when supplying a LIKE clause.
`protected void` | `appendLiteral(java.lang.Object val, DbAttribute attr, Expression parentExpression)` Appends SQL code to the query buffer to handle `val` as a parameter to the PreparedStatement being built.
`protected void` | `appendLiteralDirect(java.lang.Object val, DbAttribute attr, Expression parentExpression)` Appends SQL code to the query buffer to handle `val` as a parameter to the PreparedStatement being built.
`protected void` | `appendObjPath(Expression pathExp)` Processes parts of the OBJ_PATH expression.
`
`<T extends java.lang.Appendable> T`
` | `appendPart(T out)`
`protected abstract void` | `doAppendPart()`
`DbEntity` | `getDbEntity()`
`ObjEntity` | `getObjEntity()`
`protected DbAttribute` | `paramsDbType(Expression e)` Returns database type of expression parameters or null if it can not be determined.
`protected void` | `processColumn(DbAttribute dbAttr)`
`protected void` | `processColumnWithQuoteSqlIdentifiers(DbAttribute dbAttr, Expression pathExp)`
`protected void` | `processRelTermination(DbRelationship rel, JoinType joinType, java.lang.String joinSplitAlias)` Handles case when a DB_NAME expression ends with relationship.
`protected void` | `processRelTermination(ObjRelationship rel, JoinType joinType, java.lang.String joinSplitAlias)` Processes case when an OBJ_PATH expression ends with relationship.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### queryAssembler

    protected QueryAssembler queryAssembler

### out

    protected java.lang.Appendable out

### strategy

    protected QuotingStrategy strategy

Constructor Detail

### QueryAssemblerHelper

    public QueryAssemblerHelper(QueryAssembler queryAssembler)

  Creates QueryAssemblerHelper initializing with parent `QueryAssembler` and output buffer object.

Method Detail

### getObjEntity

    public ObjEntity getObjEntity()

### getDbEntity

    public DbEntity getDbEntity()

### appendPart

    public <T extends java.lang.Appendable> T appendPart(T out)
                                              throws java.io.IOException

  Throws:
    `java.io.IOException`
  Since:
    3.0

### doAppendPart

    protected abstract void doAppendPart()
                                  throws java.io.IOException

  Throws:
    `java.io.IOException`
  Since:
    3.0

### appendLikeEscapeCharacter

    protected void appendLikeEscapeCharacter(PatternMatchNode patternMatchNode)
                                      throws java.io.IOException

  Outputs the standard JDBC (database agnostic) expression for supplying the escape character to the database server when supplying a LIKE clause. This has been factored-out because some database adaptors handle LIKE differently and they need access to this common method in order not to repeat this code.

  If there is no escape character defined then this method will not output anything. An escape character of 0 will mean no escape character.

  Throws:
    `java.io.IOException`
  Since:
    3.1

### appendObjPath

    protected void appendObjPath(Expression pathExp)
                          throws java.io.IOException

  Processes parts of the OBJ_PATH expression.

  Throws:
    `java.io.IOException`

### appendDbPath

    protected void appendDbPath(Expression pathExp)
                         throws java.io.IOException

  Throws:
    `java.io.IOException`

### processColumn

    protected void processColumn(DbAttribute dbAttr)
                          throws java.io.IOException

  Throws:
    `java.io.IOException`

### processColumnWithQuoteSqlIdentifiers

    protected void processColumnWithQuoteSqlIdentifiers(DbAttribute dbAttr,
                                                        Expression pathExp)
                                                 throws java.io.IOException

  Throws:
    `java.io.IOException`

### appendLiteral

    protected void appendLiteral(java.lang.Object val,
                                 DbAttribute attr,
                                 Expression parentExpression)
                          throws java.io.IOException

  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.

  Parameters:
    `val` - object that should be appended as a literal to the query. Must be of one of "standard JDBC" types, null or a DataObject.
    `attr` - DbAttribute that has information on what type of parameter is being appended.
  Throws:
    `java.io.IOException`

### appendLiteralDirect

    protected void appendLiteralDirect(java.lang.Object val,
                                       DbAttribute attr,
                                       Expression parentExpression)
                                throws java.io.IOException

  Appends SQL code to the query buffer to handle `val` as a parameter to the PreparedStatement being built. Adds `val` into QueryAssembler parameter list.

  Throws:
    `java.io.IOException`

### paramsDbType

    protected DbAttribute paramsDbType(Expression e)

  Returns database type of expression parameters or null if it can not be determined.

### processRelTermination

    protected void processRelTermination(ObjRelationship rel,
                                         JoinType joinType,
                                         java.lang.String joinSplitAlias)
                                  throws java.io.IOException

  Processes case when an OBJ_PATH 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 expression for the source foreign key is added.

  Throws:
    `java.io.IOException`
  Since:
    3.0

### processRelTermination

    protected void processRelTermination(DbRelationship rel,
                                         JoinType joinType,
                                         java.lang.String joinSplitAlias)
                                  throws java.io.IOException

  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 expression for the source foreign key is added.

  Throws:
    `java.io.IOException`
  Since:
    3.0

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2012 Apache Cayenne. All Rights Reserved.