org.apache.metamodel.jdbc.dialects
Class AbstractQueryRewriter

java.lang.Object
  extended by org.apache.metamodel.jdbc.dialects.AbstractQueryRewriter
All Implemented Interfaces:
IQueryRewriter
Direct Known Subclasses:
DefaultQueryRewriter

public abstract class AbstractQueryRewriter
extends Object
implements IQueryRewriter

Abstract implementation of query rewriter. This implementation delegates the rewriting of the Query into several subtasks according to the query items to be rendered. This makes it easy to overload single methods in order to correct syntax quirks.


Field Summary
protected  org.slf4j.Logger logger
           
 
Constructor Summary
AbstractQueryRewriter(JdbcDataContext dataContext)
           
 
Method Summary
protected  Query beforeRewrite(Query query)
          Method to modify query before rewriting begins.
 ColumnType getColumnType(int jdbcType, String nativeType, Integer columnSize)
          Gets the column type for a specific JDBC type (as defined in Types), native type name and column size.
 JdbcDataContext getDataContext()
           
 boolean isSchemaIncludedInColumnPaths()
           
 String rewriteColumnType(ColumnType columnType)
          Rewrites the name of a column type, as it is written in CREATE TABLE statements.
 String rewriteFilterItem(FilterItem item)
           
protected  String rewriteFromClause(Query query, FromClause fromClause)
           
 String rewriteFromItem(FromItem item)
           
protected  String rewriteFromItem(Query query, FromItem item)
           
protected  String rewriteGroupByClause(Query query, GroupByClause groupByClause)
           
protected  String rewriteGroupByItem(Query query, GroupByItem item)
           
protected  String rewriteHavingClause(Query query, FilterClause havingClause)
           
protected  String rewriteOrderByClause(Query query, OrderByClause orderByClause)
           
protected  String rewriteOrderByItem(Query query, OrderByItem item)
           
 String rewriteQuery(Query query)
           
protected  String rewriteSelectClause(Query query, SelectClause selectClause)
           
protected  String rewriteSelectItem(Query query, SelectItem item)
           
protected  String rewriteWhereClause(Query query, FilterClause whereClause)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.metamodel.jdbc.dialects.IQueryRewriter
escapeQuotes, isFirstRowSupported, isMaxRowsSupported
 

Field Detail

logger

protected final org.slf4j.Logger logger
Constructor Detail

AbstractQueryRewriter

public AbstractQueryRewriter(JdbcDataContext dataContext)
Method Detail

getDataContext

public JdbcDataContext getDataContext()

getColumnType

public ColumnType getColumnType(int jdbcType,
                                String nativeType,
                                Integer columnSize)
Description copied from interface: IQueryRewriter
Gets the column type for a specific JDBC type (as defined in Types), native type name and column size.

Specified by:
getColumnType in interface IQueryRewriter
Returns:

rewriteQuery

public String rewriteQuery(Query query)
Specified by:
rewriteQuery in interface IQueryRewriter

isSchemaIncludedInColumnPaths

public boolean isSchemaIncludedInColumnPaths()

beforeRewrite

protected Query beforeRewrite(Query query)
Method to modify query before rewriting begins. Overwrite this method if you want to change parts of the query that are not just rendering related. Cloning the query before modifying is recommended in order to not violate referential integrity of clients (the query is mutable).

Parameters:
strategy -
query -
Returns:
the modified query

rewriteColumnType

public String rewriteColumnType(ColumnType columnType)
Description copied from interface: IQueryRewriter
Rewrites the name of a column type, as it is written in CREATE TABLE statements. Some databases dont support all column types, or have different names for them. The implementation of this method will do that conversion.

Specified by:
rewriteColumnType in interface IQueryRewriter
Returns:

rewriteOrderByClause

protected String rewriteOrderByClause(Query query,
                                      OrderByClause orderByClause)

rewriteFromItem

public String rewriteFromItem(FromItem item)
Specified by:
rewriteFromItem in interface IQueryRewriter

rewriteOrderByItem

protected String rewriteOrderByItem(Query query,
                                    OrderByItem item)

rewriteHavingClause

protected String rewriteHavingClause(Query query,
                                     FilterClause havingClause)

rewriteGroupByClause

protected String rewriteGroupByClause(Query query,
                                      GroupByClause groupByClause)

rewriteGroupByItem

protected String rewriteGroupByItem(Query query,
                                    GroupByItem item)

rewriteWhereClause

protected String rewriteWhereClause(Query query,
                                    FilterClause whereClause)

rewriteFilterItem

public String rewriteFilterItem(FilterItem item)
Specified by:
rewriteFilterItem in interface IQueryRewriter

rewriteFromClause

protected String rewriteFromClause(Query query,
                                   FromClause fromClause)

rewriteFromItem

protected String rewriteFromItem(Query query,
                                 FromItem item)

rewriteSelectClause

protected String rewriteSelectClause(Query query,
                                     SelectClause selectClause)

rewriteSelectItem

protected String rewriteSelectItem(Query query,
                                   SelectItem item)


Copyright © 2007-2014 The Apache Software Foundation. All Rights Reserved.