1 package SQLite; 2 3 /** 4 * Callback interface for SQLite's user defined functions. 5 * Each callback method receives a 6 * <A HREF="FunctionContext.html">FunctionContext</A> object 7 * which is used to set the function result or error code. 8 * <BR><BR> 9 * Example:<BR> 10 * 11 * <PRE> 12 * class SinFunc implements SQLite.Function { 13 * public void function(SQLite.FunctionContext fc, String args[]) { 14 * try { 15 * Double d = new Double(args[0]); 16 * fc.set_result(Math.sin(d.doubleValue())); 17 * } catch (Exception e) { 18 * fc.set_error("sin(" + args[0] + "):" + e); 19 * } 20 * } 21 * ... 22 * } 23 * SQLite.Database db = new SQLite.Database(); 24 * db.open("db", 0); 25 * db.create_function("sin", 1, SinFunc); 26 * ... 27 * db.exec("select sin(1.0) from test", null); 28 * </PRE> 29 */ 30 31 public interface Function { 32 33 /** 34 * Callback for regular function. 35 * 36 * @param fc function's context for reporting result 37 * @param args String array of arguments 38 */ 39 function(FunctionContext fc, String args[])40 public void function(FunctionContext fc, String args[]); 41 42 /** 43 * Callback for one step in aggregate function. 44 * 45 * @param fc function's context for reporting result 46 * @param args String array of arguments 47 */ 48 step(FunctionContext fc, String args[])49 public void step(FunctionContext fc, String args[]); 50 51 /** 52 * Callback for final step in aggregate function. 53 * 54 * @param fc function's context for reporting result 55 */ 56 last_step(FunctionContext fc)57 public void last_step(FunctionContext fc); 58 59 } 60