com.mckoi.database.interpret
Class FromClause

java.lang.Object
  extended by com.mckoi.database.interpret.FromClause
All Implemented Interfaces:
StatementTreeObject, java.io.Serializable, java.lang.Cloneable

public final class FromClause
extends java.lang.Object
implements java.io.Serializable, StatementTreeObject, java.lang.Cloneable

A container for the From clause of a select statement. This handles the different types of joins.

Author:
Tobias Downer
See Also:
Serialized Form

Constructor Summary
FromClause()
           
 
Method Summary
 void addJoin(int type)
          Adds a Join to the from clause.
 void addJoin(int type, Expression on_expression)
          Adds a Join to the from clause.
 void addPreviousJoin(int type, Expression on_expression)
          Hack, add a joining type to the previous entry from the end.
 void addTable(java.lang.String table_name)
          Adds a table name to this FROM clause.
 void addTable(java.lang.String table_name, java.lang.String table_alias)
          Adds a table name + alias to this FROM clause.
 void addTableDeclaration(java.lang.String table_name, TableSelectExpression select, java.lang.String table_alias)
          A generic form of a table declaration.
 java.util.Collection allTables()
          Returns a Set of FromTableDef objects that represent all the tables that are in this from clause.
 java.lang.Object clone()
          Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members.
 JoiningSet getJoinSet()
          Returns the JoiningSet object for the FROM clause.
 int getJoinType(int n)
          Returns the type of join after table 'n' in the set of tables in the from clause.
 Expression getOnExpression(int n)
          Returns the ON Expression for the type of join after table 'n' in the set.
 void prepareExpressions(ExpressionPreparer preparer)
          Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FromClause

public FromClause()
Method Detail

addTable

public void addTable(java.lang.String table_name)
Adds a table name to this FROM clause. Note that the given name may be a dot deliminated ref such as (schema.table_name).


addTable

public void addTable(java.lang.String table_name,
                     java.lang.String table_alias)
Adds a table name + alias to this FROM clause.


addTableDeclaration

public void addTableDeclaration(java.lang.String table_name,
                                TableSelectExpression select,
                                java.lang.String table_alias)
A generic form of a table declaration. If any parameters are 'null' it means the information is not available.


addJoin

public void addJoin(int type)
Adds a Join to the from clause. 'type' must be a join type as defined in JoiningSet.


addPreviousJoin

public void addPreviousJoin(int type,
                            Expression on_expression)
Hack, add a joining type to the previous entry from the end. This is an artifact of how joins are parsed.


addJoin

public void addJoin(int type,
                    Expression on_expression)
Adds a Join to the from clause. 'type' must be a join type as defined in JoiningSet, and expression represents the ON condition.


getJoinSet

public JoiningSet getJoinSet()
Returns the JoiningSet object for the FROM clause.


getJoinType

public int getJoinType(int n)
Returns the type of join after table 'n' in the set of tables in the from clause. Returns, JoiningSet.INNER_JOIN, JoiningSet.FULL_OUTER_JOIN, etc.


getOnExpression

public Expression getOnExpression(int n)
Returns the ON Expression for the type of join after table 'n' in the set.


allTables

public java.util.Collection allTables()
Returns a Set of FromTableDef objects that represent all the tables that are in this from clause.


prepareExpressions

public void prepareExpressions(ExpressionPreparer preparer)
                        throws DatabaseException
Description copied from interface: StatementTreeObject
Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.

Specified by:
prepareExpressions in interface StatementTreeObject
Throws:
DatabaseException

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from interface: StatementTreeObject
Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members. If the object is immutable then it may return 'this'.

Specified by:
clone in interface StatementTreeObject
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException