public class SQLQuery extends AbstractSQLFragment
getSQLText()
(as part of the SQLFragment
interface) but the query may or may not be represented declaratively
as well using the SQLFragments in the oracle.javatools.db.sql pacakge.
getSelectObjects()
will
return a declarative representation of the SELECT clause (for example).
setSelectObjects
) will clear the queryString property so
that the SQL text can be derived from the declarative representation.SQLQueryBuilder
AbstractDBObject.ChildSupport, AbstractDBObject.ListenerSupport
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
SQL_TEMPLATE
This is the template SQL that an empty, declarative SQLQuery with will
return as its SQL text.
|
static java.lang.String |
TYPE |
AS, COMMA, DEFAULT_SEPARATOR, EMPTY, EMPTY_ARRAY, INDENT, LEFT_PAREN, NEWLINE, RIGHT_PAREN, SPACE
Constructor and Description |
---|
SQLQuery()
Creates a new, empty, SQLQuery.
|
SQLQuery(java.lang.String queryText)
Creates a new query based on the given query text.
|
Modifier and Type | Method and Description |
---|---|
void |
addFromObject(FromObject f) |
void |
addFromObject(int index,
FromObject f) |
void |
addOrderByObject(int index,
OrderByObject o) |
void |
addOrderByObject(OrderByObject o) |
void |
addSelectObject(int index,
SelectObject s) |
void |
addSelectObject(SelectObject s) |
protected void |
appendFromSQL(java.lang.StringBuilder sql) |
protected void |
appendSelectSQL(java.lang.StringBuilder sql) |
protected void |
clearQueryString()
Deprecated.
without replacement, the query string is cleared
automatically when a derived property is changed.
|
java.lang.String |
getDistinctSource()
Get the source string used to define the
DISTINCT/UNIQUE/ALL property for the query
|
FromObject[] |
getFromObjects()
Get all the from objects for this query.
|
GroupByObject |
getGroupByObject()
Gets the "GROUP BY ...
|
HierarchicalQueryObject |
getHierarchicalQueryObject()
Get the "CONNECT BY ...
|
ModelObject |
getModelObject()
Gets the MODEL clause of the query.
|
OrderByObject[] |
getOrderByObjects()
Get all the OrderBy objects for this query.
|
java.lang.String |
getQueryString()
Gets the query string.
|
SelectObject[] |
getSelectObjects()
Get all the select objects for this query.
|
SetOperator |
getSetOperator()
Returns set operator for queries that are connected by one of the SET
operators UNION, INTERSECT, MINUS or UNION ALL
|
java.lang.String |
getSQLText()
Gets the SQL for the query.
|
java.lang.String |
getType()
Returns the type of this object.
|
WhereObject |
getWhereObject()
Gets the WHERE clause for this query.
|
int |
indexOf(FromObject f) |
int |
indexOf(OrderByObject o) |
int |
indexOf(SelectObject s) |
boolean |
isDeclarative()
Tests whether this query has been fully built declaratively - i.e.
|
boolean |
isDistinct()
Return true if the query only returns DISTINCT/UNIQUE rows.
|
boolean |
isOrderSiblings()
Return true if ORDER SIBLINGS BY syntax required.
|
void |
moveFromObject(FromObject f,
int newIndex) |
void |
moveOrderByObject(OrderByObject o,
int newIndex) |
void |
moveSelectObject(SelectObject s,
int newIndex) |
protected void |
processPropertyChange(DBObjectChange change)
Called once for a set of property changes that have been made on this
object to allow additional processing of the change.
|
boolean |
removeFromObject(FromObject f) |
boolean |
removeOrderByObject(OrderByObject o) |
boolean |
removeSelectObject(SelectObject s) |
void |
setDeclarative(boolean declarative)
Marks this query as declarative which means that the query string
returned by getQueryString() matches the declarative parts available
through the derived methods (e.g.
|
void |
setDistinct(boolean isDistinct)
Set the DISTINCT/UNIQUE/ALL property for the query.
|
void |
setDistinctSource(java.lang.String distinctSource)
Set the source string used to define the
DISTINCT/UNIQUE/ALL property for the query
|
void |
setFromObjects(FromObject[] froms)
Set all the from objects for this query - defining the FROM clause.
|
void |
setGroupByObject(GroupByObject groupby)
Sets the "GROUP BY ...
|
void |
setHierarchicalQueryObject(HierarchicalQueryObject connectby)
Set the "CONNECT BY ...
|
void |
setModelObject(ModelObject model)
Sets the MODEL clause of the query.
|
void |
setOrderByObjects(OrderByObject[] orderBys)
Set all the OrderBy objects for this query - defining the ORDER BY
clause.
|
void |
setOrderSiblings(boolean orderSiblings)
Sets whether ORDER SIBLINGS BY is required by an hierarchical query.
|
void |
setQueryString(java.lang.String query)
Sets the query string.
|
void |
setSelectObjects(SelectObject[] selects)
Set all the select objects for this query - defining the SELECT clause.
|
void |
setSetOperator(SetOperator setOperator)
Set SET operator if query consists of one or more queries connected by
one of the SET operators UNION, INTERSECT, MINUS or UNION ALL
|
void |
setWhereObject(WhereObject where)
Sets the WHERE clause for this query.
|
appendToBuffer, appendToBuffer, argsToString, getName, getStartOffset, getTextOrNull, getTextOrNull, setStartOffset, surroundWithBrackets, surroundWithBrackets, toString
setParent
checkInit, checkInit, copyToImpl, getOwnedObjectsImpl, getProperties, getReferenceIDsImpl, needsInitialization, setID
addObjectListener, addObjectListener, addObjectListener, changeParent, compareToImpl, copyObject, copyTo, copyTo, copyTo, copyTo, equals, equalsImpl, findOwnedObject, findOwnedObject, findOwnedObject, findOwnedObject, findParent, fireObjectUpdated, firePropertyChanged, getChildSupport, getChildSupport, getID, getOwnedObjects, getOwnedObjects, getParent, getProperty, getProperty, getReferenceIDs, hashCode, includeOwnedObject, includesType, includesType, removeObjectListener, removeObjectListener, removeObjectListener, removeOwnedObject, removeThisAsParent, replaceReferenceIDs, setName, setProperties, setProperty
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getParent, setParent
addObjectListener, copyTo, copyTo, copyTo, equals, findOwnedObject, findOwnedObject, findOwnedObject, getID, getOwnedObjects, getOwnedObjects, getProperties, getProperty, getProperty, getReferenceIDs, hashCode, removeObjectListener, removeOwnedObject, replaceReferenceIDs, setID, setName, setProperties, setProperty
public static final java.lang.String TYPE
public static final java.lang.String SQL_TEMPLATE
public SQLQuery()
public SQLQuery(java.lang.String queryText)
queryText
- the text of the SQL query.public java.lang.String getType()
DBObject
getType
in interface DBObject
getType
in class AbstractSQLFragment
protected void processPropertyChange(DBObjectChange change)
AbstractBuildableObject
This will not be called for properties that are set as a result of the object being built.
This method is called within a property lock with the original changes. If the implementation changes any further properties while processing the given change, they will automatically be combined with the original change to any caller or listener. It will also loop back to this method (with the additional change) so implementations must be careful not to infinite loop.
The default implementation clears any derived properties related to the changes. If overridden ensure that you call super (unless you don't want that to happen).
processPropertyChange
in class AbstractBuildableObject
change
- the changes that have occurred (to process).public boolean isDeclarative()
This is a state check, not a derived property - i.e. calling this method will not attempt to build the declarative properties if they are not already built.
public void setDeclarative(boolean declarative)
public java.lang.String getQueryString()
public void setQueryString(java.lang.String query)
DerivedPropertyBuilder
).@Deprecated protected void clearQueryString()
public SelectObject[] getSelectObjects()
public void setSelectObjects(SelectObject[] selects)
public void addSelectObject(SelectObject s)
public void addSelectObject(int index, SelectObject s)
public boolean removeSelectObject(SelectObject s)
public void moveSelectObject(SelectObject s, int newIndex)
public int indexOf(SelectObject s)
public FromObject[] getFromObjects()
public void setFromObjects(FromObject[] froms)
public void addFromObject(FromObject f)
public void addFromObject(int index, FromObject f)
public boolean removeFromObject(FromObject f)
public void moveFromObject(FromObject f, int newIndex)
public int indexOf(FromObject f)
public OrderByObject[] getOrderByObjects()
public void setOrderByObjects(OrderByObject[] orderBys)
public void addOrderByObject(OrderByObject o)
public void addOrderByObject(int index, OrderByObject o)
public boolean removeOrderByObject(OrderByObject o)
public void moveOrderByObject(OrderByObject o, int newIndex)
public int indexOf(OrderByObject o)
public void setWhereObject(WhereObject where)
public WhereObject getWhereObject()
public void setSetOperator(SetOperator setOperator)
setOperator
- set operatorpublic SetOperator getSetOperator()
public void setHierarchicalQueryObject(HierarchicalQueryObject connectby)
public HierarchicalQueryObject getHierarchicalQueryObject()
public void setGroupByObject(GroupByObject groupby)
public GroupByObject getGroupByObject()
public void setModelObject(ModelObject model)
public ModelObject getModelObject()
public void setDistinct(boolean isDistinct)
true - the query only DISTINCT/UNIQUE rows false - the query returns ALL rows (this is the default)
public boolean isDistinct()
public void setOrderSiblings(boolean orderSiblings)
true - use ORDER SIBLINGS BY false - use ORDER BY
public boolean isOrderSiblings()
public void setDistinctSource(java.lang.String distinctSource)
public java.lang.String getDistinctSource()
public java.lang.String getSQLText()
protected void appendSelectSQL(java.lang.StringBuilder sql)
protected void appendFromSQL(java.lang.StringBuilder sql)