@Scope(value="prototype") @Component(value="cuba_QueryTransformer") public class QueryTransformerAstBased extends java.lang.Object implements QueryTransformer
ALIAS_PLACEHOLDER, NAME
Constructor and Description |
---|
QueryTransformerAstBased(DomainModel model,
java.lang.String query) |
Modifier and Type | Method and Description |
---|---|
void |
addDistinct()
Replaces 'select' with 'select distinct'.
|
void |
addEntityInGroupBy(java.lang.String entityAlias)
Adds @param entityAlias to 'group by' clause
|
void |
addFirstSelectionSource(java.lang.String selection) |
void |
addJoinAndWhere(java.lang.String join,
java.lang.String where)
Adds 'join' and 'where' clauses.
|
void |
addJoinAsIs(java.lang.String join)
Adds 'join' clause
|
void |
addWhere(java.lang.String where)
Adds 'where' clause replacing entity alias
|
void |
addWhereAsIs(java.lang.String where)
Adds 'where' clause
|
java.util.Set<java.lang.String> |
getAddedParams()
Get parameter names found during transformation
|
java.lang.String |
getResult()
Get buffer
|
void |
handleCaseInsensitiveParam(java.lang.String paramName) |
void |
mergeWhere(java.lang.String statement)
copy from another statement
|
boolean |
removeDistinct()
Replaces 'select distinct' with 'select'.
|
void |
removeOrderBy()
Removes 'order by' clause
|
void |
replaceEntityName(java.lang.String newName)
Replace main entity name, e.g.
|
void |
replaceInCondition(java.lang.String paramName) |
void |
replaceOrderBy(boolean desc,
java.lang.String... properties)
Adds or replaces 'order by' clause
|
void |
replaceWithCount()
Replaces
select e.f1, e.f2, ... clause with select count(e) ... |
void |
replaceWithSelectEntityVariable(java.lang.String selectEntityVariable)
Replaces
select e from ... clause with select 'selectEntityVariable' from ... |
void |
replaceWithSelectId()
Replaces
select e from ... clause with select e.id from ... |
void |
replaceWithSelectId(java.lang.String pkName)
Replaces
select e from ... clause with select e.pkName from ... |
void |
reset()
Reset internal buffer
|
public QueryTransformerAstBased(DomainModel model, java.lang.String query)
public java.lang.String getResult()
QueryTransformer
getResult
in interface QueryTransformer
public java.util.Set<java.lang.String> getAddedParams()
QueryTransformer
getAddedParams
in interface QueryTransformer
public void handleCaseInsensitiveParam(java.lang.String paramName)
handleCaseInsensitiveParam
in interface QueryTransformer
public void addWhere(java.lang.String where)
QueryTransformer
addWhere
in interface QueryTransformer
where
- - "{E}" may be used as a replaceable entity placeholder. No such value
should be used as a string constantpublic void addWhereAsIs(java.lang.String where)
QueryTransformer
addWhereAsIs
in interface QueryTransformer
public void mergeWhere(java.lang.String statement)
mergeWhere
in interface QueryTransformer
statement
- from we copy where clausepublic void addJoinAndWhere(java.lang.String join, java.lang.String where)
QueryTransformer
addJoinAndWhere
in interface QueryTransformer
public void addJoinAsIs(java.lang.String join)
QueryTransformer
addJoinAsIs
in interface QueryTransformer
public void addFirstSelectionSource(java.lang.String selection)
addFirstSelectionSource
in interface QueryTransformer
public void replaceWithCount()
QueryTransformer
select e.f1, e.f2, ...
clause with select count(e) ...
replaceWithCount
in interface QueryTransformer
public void replaceWithSelectId()
QueryTransformer
select e from ...
clause with select e.id from ...
replaceWithSelectId
in interface QueryTransformer
public void replaceWithSelectId(java.lang.String pkName)
QueryTransformer
select e from ...
clause with select e.pkName from ...
replaceWithSelectId
in interface QueryTransformer
public void replaceWithSelectEntityVariable(java.lang.String selectEntityVariable)
QueryTransformer
select e from ...
clause with select 'selectEntityVariable' from ...
replaceWithSelectEntityVariable
in interface QueryTransformer
public boolean removeDistinct()
QueryTransformer
removeDistinct
in interface QueryTransformer
public void addDistinct()
QueryTransformer
addDistinct
in interface QueryTransformer
public void replaceOrderBy(boolean desc, java.lang.String... properties)
QueryTransformer
replaceOrderBy
in interface QueryTransformer
public void addEntityInGroupBy(java.lang.String entityAlias)
QueryTransformer
addEntityInGroupBy
in interface QueryTransformer
public void removeOrderBy()
QueryTransformer
removeOrderBy
in interface QueryTransformer
public void replaceEntityName(java.lang.String newName)
QueryTransformer
replaceEntityName
in interface QueryTransformer
public void reset()
QueryTransformer
reset
in interface QueryTransformer
public void replaceInCondition(java.lang.String paramName)
replaceInCondition
in interface QueryTransformer