Package com.mckoi.database.interpret

## Class FromClause

- java.lang.Object
- - 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

Constructors
`FromClause()`

### Method Summary

All Methods Instance Methods Concrete Methods
`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`