1 /** 2 * com.mckoi.database.StatementTreeObject 09 Sep 2001 3 * 4 * Mckoi SQL Database ( http://www.mckoi.com/database ) 5 * Copyright (C) 2000, 2001, 2002 Diehl and Associates, Inc. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * Version 2 as published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License Version 2 for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * Version 2 along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 * 20 * Change Log: 21 * 22 * 23 */ 24 25 package com.mckoi.database; 26 27 /** 28 * An complex object that is to be contained within a StatementTree object. 29 * A statement tree object must be serializable, and it must be able to 30 * reference all Expression objects so that they may be prepared. 31 * 32 * @author Tobias Downer 33 */ 34 35 public interface StatementTreeObject { 36 37 /** 38 * Prepares all expressions in this statement tree object by passing the 39 * ExpressionPreparer object to the 'prepare' method of the expression. 40 */ 41 void prepareExpressions(ExpressionPreparer preparer) 42 throws DatabaseException; 43 44 /** 45 * Performs a DEEP clone of this object if it is mutable, or a deep clone 46 * of its mutable members. If the object is immutable then it may return 47 * 'this'. 48 */ 49 Object clone() throws CloneNotSupportedException; 50 51 } 52