package SQLite;
/**
* Callback interface for SQLite's user defined functions.
* Each callback method receives a
* <A HREF="FunctionContext.html">FunctionContext</A> object
* which is used to set the function result or error code.
* <BR><BR>
* Example:<BR>
*
* <PRE>
* class SinFunc implements SQLite.Function {
* public void function(SQLite.FunctionContext fc, String args[]) {
* try {
* Double d = new Double(args[0]);
* fc.set_result(Math.sin(d.doubleValue()));
* } catch (Exception e) {
* fc.set_error("sin(" + args[0] + "):" + e);
* }
* }
* ...
* }
* SQLite.Database db = new SQLite.Database();
* db.open("db", 0);
* db.create_function("sin", 1, SinFunc);
* ...
* db.exec("select sin(1.0) from test", null);
* </PRE>
*/
public interface Function {
/**
* Callback for regular function.
*
* @param fc function's context for reporting result
* @param args String array of arguments
*/
public void function(FunctionContext fc, String args[]);
/**
* Callback for one step in aggregate function.
*
* @param fc function's context for reporting result
* @param args String array of arguments
*/
public void step(FunctionContext fc, String args[]);
/**
* Callback for final step in aggregate function.
*
* @param fc function's context for reporting result
*/
public void last_step(FunctionContext fc);
}