org.objectweb.medor.query.rdb.api

Interface RdbQueryLeaf

All Superinterfaces:
Cloneable, QueryLeaf, QueryTree
Known Subinterfaces:
RdbExpQueryLeaf, RdbStringQueryLeaf
Known Implementing Classes:
AggregateRdbQueryNode, BasicRdbExpQueryLeaf, BasicRdbQueryLeaf, BasicRdbStringQueryLeaf

public interface RdbQueryLeaf
extends QueryLeaf

An RdbQueryLeaf represents a query leaf which encapsulates access to a relational database.

A SQL query is associated to an RdbQueryLeaf.

Author:
Sebastien Chassande-Barrioz

See Also:
RdbExpQueryLeaf, RdbStringQueryLeaf

Method Summary

String
getSelectList(String selectList, ArrayList selectFields, boolean qualified)
Builds the SELECT clause of the query (without "SELECT ").
String
getSqlRequest(ParameterOperand[] pos, ArrayList selectFields, int rangeStartAt, int rangeSize)
Returns the associated SQL queryn giving the list of SELECT fields as an input parameter.
String
getSqlRequest(ParameterOperand[] pos, int rangeStartAt, int rangeSize)
Returns the associated SQL query.
boolean
isSubquery()
Is the current query leaf a subquery (in particular for the case of aggregates).
void
setIsSubquery(boolean subquery)
Indicates whether the current RdbExpQueryLeaf is a subquery of another Rdb query leaf (in particular in the case of subqueries).

Methods inherited from interface org.objectweb.medor.query.api.QueryLeaf

getDataStore

Methods inherited from interface org.objectweb.medor.query.api.QueryTree

getDistinct, getName, getOrderBy, getTupleStructure, setDistinct, setOrderBy

Method Details

getSelectList

public String getSelectList(String selectList,
                            ArrayList selectFields,
                            boolean qualified)
            throws MedorException
Builds the SELECT clause of the query (without "SELECT ").

Parameters:
selectList - is the start of the SELECT clause to which the list of qualified columns is appended.
selectFields - is the fields for the SELECT clause. Such fields can either be plain fields, or can be aggregate fields
qualified - indicates whether the field names should be qualified with the table name or not.

Returns:
the list of qualified columns for the SELECT clause


getSqlRequest

public String getSqlRequest(ParameterOperand[] pos,
                            ArrayList selectFields,
                            int rangeStartAt,
                            int rangeSize)
            throws MedorException,
                   ExpressionException
Returns the associated SQL queryn giving the list of SELECT fields as an input parameter.

In the case of an RdbExpQueryLeaf, the query is computed.

Parameters:
pos - is an array of ParameterOperand
selectFields - is the input Array of fields for constructing the SELECT clause.
rangeStartAt - is the offset of the first row to be returned in the case of a range query, starting at 0.
rangeSize - is the number of rows to be returned in the case of a range query.

Returns:
the SQL query associated to the RdbQueryLeaf, as a String.

Throws:
MedorException - in the case of RdbExpQueryLeaves if the SQL request cannot be computed from the associated Expression


getSqlRequest

public String getSqlRequest(ParameterOperand[] pos,
                            int rangeStartAt,
                            int rangeSize)
            throws MedorException,
                   ExpressionException
Returns the associated SQL query.

In the case of an RdbExpQueryLeaf, the query is computed.

Parameters:
pos - is an array of ParameterOperand
rangeStartAt - is the offset of the first row to be returned in the case of a range query, starting at 0.
rangeSize - is the number of rows to be returned in the case of a range query.

Returns:
the SQL query associated to the RdbQueryLeaf, as a String.

Throws:
MedorException - in the case of RdbExpQueryLeaves if the SQL request cannot be computed from the associated Expression


isSubquery

public boolean isSubquery()
Is the current query leaf a subquery (in particular for the case of aggregates).

Returns:
true if the current RdbExpQueryLeaf is a subquery


setIsSubquery

public void setIsSubquery(boolean subquery)
Indicates whether the current RdbExpQueryLeaf is a subquery of another Rdb query leaf (in particular in the case of subqueries).

The default value is false.

Parameters:
subquery - is true when the current RdbExpQueryLeaf is a subquery of another Rdb query leaf/node, false otherwise.