package Ġorg . h 2 . api Ċ Ċ import Ġjava . sql . Connection Ċ import Ġjava . sql . SQLException Ċ Ċ /** Ċ Ġ* ĠA Ġuser _ defined Ġaggregate Ġfunction Ġneeds Ġto Ġimplement Ġthis Ġinterface . Ċ Ġ* ĠT He Ġclass Ġmust Ġbe Ġpublic Ġand Ġmust Ġhave Ġa Ġpublic Ġnon - argument Ġconstructor . Ċ Ġ* Ġ< p > Ċ Ġ* ĠPlease Ġnote Ġthis Ġinterface Ġonly Ġhas Ġlimited Ġsupport Ġfor Ġdata Ġtypes . Ċ Ġ* ĠIf Ġyou Ġneed Ġdata Ġtypes Ġthat Ġdon 't Ġhave Ġa Ġcorresponding ĠSQL Ġtype Ċ Ġ* Ġ( for Ġexample ĠGEO METRY ), Ġthen Ġuse Ġthe Ġ{ link ĠAggregate ) Ġinterface . Ċ Ġ* Ġ</ p > Ċ Ġ*/ Ċ interface ĠAggregate Function Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġcalled Ġwhen Ġthe Ġaggregate Ġfunction Ġis Ġused . ĊĠĠĠĠ Ġ* ĠA Ġnew Ġo jb ect Ġis Ġcreated Ġfor Ġeach Ġinvocation . ĊĠĠĠĠ Ġ* Ġ@ param Ġconn Ġa Ġconnection Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( SQLException :: class ) ĊĠĠĠ Ġfun Ġinit ( conn : ĠConnection ): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġmust Ġreturn Ġthe ĠSQL Ġtype Ġof Ġthe Ġmethod , Ġgiven Ġthe ĠSQL Ġtype Ġof ĊĠĠĠĠ Ġ* Ġthe Ġinput Ġdata . ĠThe Ġmethod Ġshould Ġcheck Ġhere Ġif Ġthe Ġnumber Ġof Ġparameters ĊĠĠĠĠ Ġ* Ġpassed Ġis Ġcorrect , Ġand Ġif Ġnot Ġit Ġshould Ġthrow Ġan Ġexception . ĊĠĠĠĠ Ġ* Ġ@ param Ġinput Types Ġthe ĠSQL Ġtype Ġof Ġthe Ġparameters , Ġ{@ link Ġjava . sql . Types } ĊĠĠĠĠ Ġ* Ġ@ return Ġthe ĠSQL Ġtype Ġof Ġthe Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( SQLException :: class ) ĊĠĠĠ Ġfun ĠgetType ( input Types : ĠInt Array ): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġcalled Ġonce Ġfor Ġeach Ġrow . ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġaggregate Ġfunction Ġis Ġcalled Ġwith Ġmultiple Ġparameters , ĊĠĠĠĠ Ġ* Ġthose Ġare Ġpassed Ġas Ġarray . ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġthe Ġvalue ( s ) Ġfor Ġthis Ġrow ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( SQLException :: class ) ĊĠĠĠ Ġfun Ġadd ( value : ĠAny ): ĠUnit ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġreturns Ġthe Ġcomputed Ġaggregate Ġvalue . ĠThis Ġmethod Ġmust ĊĠĠĠĠ Ġ* Ġpreserve Ġpreviously Ġadded Ġvalues Ġand Ġmust Ġbe Ġable Ġto Ġre evaluate Ġresult Ġif ĊĠĠĠĠ Ġ* Ġmore Ġvalues Ġwere Ġadded Ġsince Ġits Ġprevious Ġinvocation . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġaggregate Ġvalue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( SQLException :: class ) ĊĠĠĠ Ġfun Ġget Result (): ĠAny Ċ }