Package com.mckoi.database

## Interface StatementTreeObject

All Known Implementing Classes:
  `AlterTableAction`, `Assignment`, `ByColumn`, `ColumnDef`, `ConstraintDef`, `FromClause`, `SearchExpression`, `SelectColumn`, `TableSelectExpression`

    public interface StatementTreeObject

An complex object that is to be contained within a StatementTree object. A statement tree object must be serializable, and it must be able to reference all Expression objects so that they may be prepared.

Author:
  Tobias Downer

### Method Summary

All Methods Instance Methods Abstract Methods
`java.lang.Object` `clone()` Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members.
`void` `prepareExpressions​(ExpressionPreparer preparer)` Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.

### Method Detail

#### prepareExpressions

    void prepareExpressions​(ExpressionPreparer preparer)
                     throws DatabaseException

Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.

Throws:
  `DatabaseException`

#### clone

    java.lang.Object clone()
                    throws java.lang.CloneNotSupportedException

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'.

Throws:
  `java.lang.CloneNotSupportedException`