org.jpox.store.expression
Interface QueryExpression

All Known Implementing Classes:
QueryStatement

public interface QueryExpression

QueryExpression instances contain query statements in language-dependent form. A statement used as criteria for perfoming a search

Version:
$Revision: 1.14 $

Method Summary
 void addGroupingExpression(ScalarExpression expr)
          Method to add a grouping clause to the statement.
 void andCondition(BooleanExpression condition)
          add an condition to the query.
 void andCondition(BooleanExpression condition, boolean unionQueries)
          add an condition to the query and queries involved in the union if unionQuery is true
 void crossJoin(LogicSetExpression tableExpr, boolean unionQueries)
          Method to add tables/crossJoin but no joins to they, will be output as FROM TABLE1,TABLE2,TABLE3
 ClassLoaderResolver getClassLoaderResolver()
          Accessor for the ClassLoaderResolver to use with this query statement.
 LogicSetExpression getDefaultTableExpression()
          Accessor to the default table expression
 ScalarExpression[] getGroupingExpressions()
          Accessor for the grouping expressions of this statement.
 BooleanExpression getHavingExpression()
          Accessor for the having expression of this statement.
 int getNumberOfScalarExpressions()
          Accessor for the number of ScalarExpression projected.
 ScalarExpression[] getOrderingExpressions()
          Accessor for the ordering expressions of this statement.
 StoreManager getStoreManager()
          Accessor for the store manager associated with this query.
 LogicSetExpression getTableExpression(DatastoreIdentifier rangeVar)
          Accessor to the table expression for the given range identifier by rangeVar
 boolean hasCrossJoin(LogicSetExpression tableExpr)
          Method to add tables/alias but no joins to they, will be output as FROM TABLE1,TABLE2,TABLE3
 boolean hasMetaDataExpression()
          Whether this query will return a meta data expression in the SELECT clause
 void innerJoin(ScalarExpression expr, ScalarExpression expr2, LogicSetExpression tblExpr, boolean equals)
          Method to do an inner join to another table.
 void innerJoin(ScalarExpression expr, ScalarExpression expr2, LogicSetExpression tblExpr, boolean equals, boolean unionQueries)
          Method to do an inner join to another table, and optionally apply it to any unions for this query.
 void iorCondition(BooleanExpression condition)
          add an condition to the query.
 void iorCondition(BooleanExpression condition, boolean unionQueries)
          add an condition to the query and queries involved in the union if unionQuery is true
 void leftOuterJoin(ScalarExpression expr, ScalarExpression expr2, LogicSetExpression tblExpr, boolean equals)
          Method to do a left outer join to another table.
 void leftOuterJoin(ScalarExpression expr, ScalarExpression expr2, LogicSetExpression tblExpr, boolean equals, boolean unionQueries)
          Method to do a left outer join to another table, and optionally apply it to any unions for this query.
 LogicSetExpression newTableExpression(DatastoreContainerObject mainTable, DatastoreIdentifier rangeVar)
          Creates a table expression
 LogicSetExpression[] newTableExpression(DatastoreContainerObject mainTable, DatastoreIdentifier rangeVar, boolean unionQueries)
          Creates a table expression
 void reset()
          Allows reseting the compiled expression
 void rightOuterJoin(ScalarExpression expr, ScalarExpression expr2, LogicSetExpression tblExpr, boolean equals)
          Method to do a right outer join to another table.
 void rightOuterJoin(ScalarExpression expr, ScalarExpression expr2, LogicSetExpression tblExpr, boolean equals, boolean unionQueries)
          Method to do a right outer join to another table, and optionally apply it to any unions for this query.
 int[] select(DatastoreIdentifier rangeVar, JavaTypeMapping mapping)
          Select columns, add to union queries, if unionQueries is true
 int[] select(DatastoreIdentifier rangeVar, JavaTypeMapping mapping, boolean unionQueries)
          select columns, add to union queries, if unionQueries is true
 int[] select(JavaTypeMapping mapping)
          Select the columns for a mapping
 int[] select(JavaTypeMapping mapping, boolean unionQueries)
          select a new column, add to union queries, if unionQueries is true
 int[] selectDatastoreIdentity(java.lang.String alias, boolean unionQueries)
          Select the datastore identity column.
 int[] selectField(java.lang.String fieldName, java.lang.String alias, boolean unionQueries)
          Select the column(s) for the specified field in the primary table of the query.
 int selectScalarExpression(ScalarExpression expr)
          select an expression; eg: "'Text' as alias"
 int selectScalarExpression(ScalarExpression expr, boolean unionQueries)
          select an expression; eg: "'Text' as alias"
 int[] selectVersion(java.lang.String alias, boolean unionQueries)
          Select the version column.
 void setDistinctResults(boolean distinctResults)
          Set whether this statement returns distinct results.
 void setExistsSubQuery(boolean isExistsSubQuery)
          Set this query is to be used as a as set for the Exists function.
 void setHaving(BooleanExpression expr)
          Method to set the having clause of the statement.
 void setOrdering(ScalarExpression[] exprs, boolean[] descending)
          Mutator for the ordering criteria.
 void setRangeConstraint(long offset, long count)
          Method to add a range constraint on any SELECT.
 void setUseInnerJoinsOnly(boolean innerJoin)
          Mutator for whether to only use inner joins.
 StatementText toDeleteStatementText()
          Method to convert the criteria into a delete statement text.
 StatementText toStatementText(boolean lock)
          Method to convert the criteria into the statement text.
 void union(QueryExpression qe)
          Union two QueryExpressions this and qe.
 

Method Detail

hasMetaDataExpression

public boolean hasMetaDataExpression()
Whether this query will return a meta data expression in the SELECT clause

Returns:
hasMetaDataExpression

getTableExpression

public LogicSetExpression getTableExpression(DatastoreIdentifier rangeVar)
Accessor to the table expression for the given range identifier by rangeVar

Parameters:
rangeVar - the range variable identifier
Returns:
the TableExpression

getDefaultTableExpression

public LogicSetExpression getDefaultTableExpression()
Accessor to the default table expression

Returns:
the TableExpression

getStoreManager

public StoreManager getStoreManager()
Accessor for the store manager associated with this query.

Returns:
The store manager

getClassLoaderResolver

public ClassLoaderResolver getClassLoaderResolver()
Accessor for the ClassLoaderResolver to use with this query statement.

Returns:
ClassLoader resolver

setDistinctResults

public void setDistinctResults(boolean distinctResults)
Set whether this statement returns distinct results.

Parameters:
distinctResults - Whether we return distinct results

setUseInnerJoinsOnly

public void setUseInnerJoinsOnly(boolean innerJoin)
Mutator for whether to only use inner joins.

Parameters:
innerJoin - Whether to only use inner joins

newTableExpression

public LogicSetExpression newTableExpression(DatastoreContainerObject mainTable,
                                             DatastoreIdentifier rangeVar)
Creates a table expression

Parameters:
mainTable - the main table
rangeVar - the range var
Returns:
TableExpression

newTableExpression

public LogicSetExpression[] newTableExpression(DatastoreContainerObject mainTable,
                                               DatastoreIdentifier rangeVar,
                                               boolean unionQueries)
Creates a table expression

Parameters:
mainTable - the main table
rangeVar - the range var
unionQueries - Whether to add to any union
Returns:
TableExpression[]

selectDatastoreIdentity

public int[] selectDatastoreIdentity(java.lang.String alias,
                                     boolean unionQueries)
Select the datastore identity column.

Parameters:
alias - Alias to use for this column
unionQueries - Whether to select the datastore id column of all unioned tables
Returns:
The position of the column in the result set

selectVersion

public int[] selectVersion(java.lang.String alias,
                           boolean unionQueries)
Select the version column.

Parameters:
alias - Alias to use for this column
unionQueries - Whether to select the version column of all unioned tables
Returns:
The position of the column in the result set

selectField

public int[] selectField(java.lang.String fieldName,
                         java.lang.String alias,
                         boolean unionQueries)
Select the column(s) for the specified field in the primary table of the query.

Parameters:
fieldName - Name of the field
alias - Alias to use for these column(s)
unionQueries - Whether to select the field column(s) of all unioned queries.
Returns:
The position of the columns in the result set.

select

public int[] select(JavaTypeMapping mapping)
Select the columns for a mapping

Parameters:
mapping - The mapping
Returns:
The index of the columns in the select

select

public int[] select(JavaTypeMapping mapping,
                    boolean unionQueries)
select a new column, add to union queries, if unionQueries is true

Parameters:
mapping - The mapping
unionQueries - Whether to add to any union
Returns:
The index of the columns in the select

selectScalarExpression

public int selectScalarExpression(ScalarExpression expr)
select an expression; eg: "'Text' as alias"

Parameters:
expr - The expression to add to the select statement
Returns:
The index of the expression in the select

selectScalarExpression

public int selectScalarExpression(ScalarExpression expr,
                                  boolean unionQueries)
select an expression; eg: "'Text' as alias"

Parameters:
expr - The expression to add to the select statement
unionQueries - whether to apply the select in all queries unified by the union clause
Returns:
The index of the expression in the select

select

public int[] select(DatastoreIdentifier rangeVar,
                    JavaTypeMapping mapping)
Select columns, add to union queries, if unionQueries is true

Parameters:
rangeVar - The range variable
mapping - The mapping
Returns:
The index of the columns in the select

select

public int[] select(DatastoreIdentifier rangeVar,
                    JavaTypeMapping mapping,
                    boolean unionQueries)
select columns, add to union queries, if unionQueries is true

Parameters:
rangeVar - The range variable
mapping - The mapping
unionQueries - Whether to add to any union
Returns:
The index of the column in the select

andCondition

public void andCondition(BooleanExpression condition)
add an condition to the query.

Parameters:
condition - the Boolean expression

andCondition

public void andCondition(BooleanExpression condition,
                         boolean unionQueries)
add an condition to the query and queries involved in the union if unionQuery is true

Parameters:
condition - the Boolean expression
unionQueries - whether to apply the condition in all queries unified by the union clause

crossJoin

public void crossJoin(LogicSetExpression tableExpr,
                      boolean unionQueries)
Method to add tables/crossJoin but no joins to they, will be output as FROM TABLE1,TABLE2,TABLE3

Parameters:
tableExpr - table expression
unionQueries - Whether to apply the alias to unions of this query.

hasCrossJoin

public boolean hasCrossJoin(LogicSetExpression tableExpr)
Method to add tables/alias but no joins to they, will be output as FROM TABLE1,TABLE2,TABLE3

Parameters:
tableExpr - table expression

innerJoin

public void innerJoin(ScalarExpression expr,
                      ScalarExpression expr2,
                      LogicSetExpression tblExpr,
                      boolean equals,
                      boolean unionQueries)
Method to do an inner join to another table, and optionally apply it to any unions for this query.

Parameters:
expr - the left hand expression
expr2 - the right hand expression
tblExpr - the
equals - if the join is applied as filter, if use equals or not equals
unionQueries - whether to apply the inner join in all queries unified by the union clause

innerJoin

public void innerJoin(ScalarExpression expr,
                      ScalarExpression expr2,
                      LogicSetExpression tblExpr,
                      boolean equals)
Method to do an inner join to another table.

Parameters:
expr - the left hand expression
expr2 - the right hand expression
tblExpr - The table expression for the table to apply the join
equals - if the join is applied as filter, if use equals or not equals

leftOuterJoin

public void leftOuterJoin(ScalarExpression expr,
                          ScalarExpression expr2,
                          LogicSetExpression tblExpr,
                          boolean equals,
                          boolean unionQueries)
Method to do a left outer join to another table, and optionally apply it to any unions for this query.

Parameters:
expr - the left hand expression
expr2 - the right hand expression
tblExpr - The table expression for the table to apply the join
equals - if the join is applied as filter, if use equals or not equals
unionQueries - Whether to apply to unions of this query.

leftOuterJoin

public void leftOuterJoin(ScalarExpression expr,
                          ScalarExpression expr2,
                          LogicSetExpression tblExpr,
                          boolean equals)
Method to do a left outer join to another table.

Parameters:
expr - the left hand expression
expr2 - the right hand expression
tblExpr - The table expression
equals - if the join is applied as filter, if use equals or not equals

rightOuterJoin

public void rightOuterJoin(ScalarExpression expr,
                           ScalarExpression expr2,
                           LogicSetExpression tblExpr,
                           boolean equals,
                           boolean unionQueries)
Method to do a right outer join to another table, and optionally apply it to any unions for this query.

Parameters:
expr - the left hand expression
expr2 - the right hand expression
tblExpr - The table expression for the table to apply the join
equals - if the join is applied as filter, if use equals or not equals
unionQueries - Whether to apply to unions of this query.

rightOuterJoin

public void rightOuterJoin(ScalarExpression expr,
                           ScalarExpression expr2,
                           LogicSetExpression tblExpr,
                           boolean equals)
Method to do a right outer join to another table.

Parameters:
expr - the left hand expression
expr2 - the right hand expression
tblExpr - The table expression for the table to apply the join
equals - if the join is applied as filter, if use equals or not equals

addGroupingExpression

public void addGroupingExpression(ScalarExpression expr)
Method to add a grouping clause to the statement. Grouping clauses that are implied by the selected columns will be added automatically so this provides a means to supplement them.

Parameters:
expr - The group by expression

getGroupingExpressions

public ScalarExpression[] getGroupingExpressions()
Accessor for the grouping expressions of this statement.

Returns:
The grouping expressions

setHaving

public void setHaving(BooleanExpression expr)
Method to set the having clause of the statement.

Parameters:
expr - The having expression

getHavingExpression

public BooleanExpression getHavingExpression()
Accessor for the having expression of this statement.

Returns:
The having expression

setOrdering

public void setOrdering(ScalarExpression[] exprs,
                        boolean[] descending)
Mutator for the ordering criteria.

Parameters:
exprs - The expressions to order by
descending - Whether each expression is ascending/descending

getOrderingExpressions

public ScalarExpression[] getOrderingExpressions()
Accessor for the ordering expressions of this statement.

Returns:
The ordering expressions

toStatementText

public StatementText toStatementText(boolean lock)
Method to convert the criteria into the statement text.

Parameters:
lock - whether to lock the instances using this statement
Returns:
The StatementText

union

public void union(QueryExpression qe)
Union two QueryExpressions this and qe. Both QueryExpressions must have the same ScalarExpressions selected, and they must be in the same select order. valid: e.g. a) fieldA, fieldB, fieldE, fieldC b) fieldA, fieldB, fieldE, fieldC invalid: e.g. a) fieldA, fieldE, fieldB, fieldC b) fieldA, fieldB, fieldE, fieldC

Parameters:
qe - the QueryExpression

iorCondition

public void iorCondition(BooleanExpression condition)
add an condition to the query.

Parameters:
condition - the Boolean expression

iorCondition

public void iorCondition(BooleanExpression condition,
                         boolean unionQueries)
add an condition to the query and queries involved in the union if unionQuery is true

Parameters:
condition - the Boolean expression
unionQueries - whether to apply the condition in all queries unified by the union clause

setRangeConstraint

public void setRangeConstraint(long offset,
                               long count)
Method to add a range constraint on any SELECT. This typically will use LIMIT/OFFSET where they are supported by the underlying RDBMS.

Parameters:
offset - The offset to start from
count - The number of records to return

setExistsSubQuery

public void setExistsSubQuery(boolean isExistsSubQuery)
Set this query is to be used as a as set for the Exists function. example WHERE EXISTS( QUERY )

Parameters:
isExistsSubQuery - The isExistsSubQuery to set.

toDeleteStatementText

public StatementText toDeleteStatementText()
Method to convert the criteria into a delete statement text.

Returns:
The StatementText

getNumberOfScalarExpressions

public int getNumberOfScalarExpressions()
Accessor for the number of ScalarExpression projected.

Returns:
The number of columns in the SELECT

reset

public void reset()
Allows reseting the compiled expression



Copyright © -2007 . All Rights Reserved.