package ModSQL;
import java.sql.*;

/* $Id: FunctionProvider.java,v 1.5 2003/05/29 05:48:45 cvs Exp $
 *
 * Copyright (c) 2003 Chris Studholme <chris.studholme@utoronto.ca>
 *
 * May be copied or modified under the terms of the GNU General Public
 * License.  See COPYING for more information.
 */

/**
 * Classes implementing this interface provide Function objects
 * matching a particular String description on demand.  This interface
 * is used by IndirectFunction to lookup column names it holds.
 *
 * @author chris.studholme@utoronto.ca
 */
public interface FunctionProvider {

  /**
   * This method will attempt to find an appropriate function described
   * by the provided description.  Depending on local policy, this method
   * may either return null or throw an exception in the case where an
   * appropriate function cannot be found.
   *
   * @param description description of function to look for
   * @return Function object (possibly null)
   * @throws SQLException if an error occurs
   */
  public Function lookupFunction(String description) 
    throws SQLException;

};
