package jsqlite; /** * 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); }