package Ġorg . apon c et . my gift . db manager Ċ Ċ import Ġjava . sql . ResultSet Ċ Ċ class ĠFriend Action On Gift Accessor ( private Ġval Ġconn : ĠDb Connection ) Ġ: ĠDao Accessor () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINSERT Ġ= Ġ" INSERT ĠINTO Ġfriend Action On Gift ( gift Id , userId , inter ested , buy ) ĠVALUES Ġ( ?, Ġ?, Ġ?, Ġ? )" ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSELECT _ BY _ G IFT _ AND _ USER Ġ= Ġ" SELECT Ġ* ĠFROM Ġfriend Action On Gift ĠWHERE Ġgift Id Ġ= Ġ? ĠAND ĠuserId Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSELECT _ SO ME _ BY _ G IFT Ġ= Ġ" SELECT Ġ* ĠFROM Ġfriend Action On Gift ĠWHERE Ġgift Id Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSELECT _ SO ME _ BY _ USER Ġ= Ġ" SELECT Ġ* ĠFROM Ġfriend Action On Gift ĠWHERE ĠuserId Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPDATE _ INTER EST ED Ġ= Ġ" UPDATE Ġfriend Action On Gift ĠSET Ġinterested =? ĠWHERE Ġgift Id Ġ= Ġ? ĠAND ĠuserId Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPDATE _ BU Y Ġ= Ġ" UPDATE Ġfriend Action On Gift ĠSET Ġbuy =? ĠWHERE Ġgift Id Ġ= Ġ? ĠAND ĠuserId Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDELETE Ġ= Ġ" DELETE ĠFROM Ġfriend Action On Gift ĠWHERE Ġgift Id Ġ= Ġ? ĠAND ĠuserId Ġ= Ġ? " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget TableName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" friend Action On Gift " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate IfNot Exists () Ġ{ ĊĠĠĠĠĠĠĠ Ġconn . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" CREATE ĠTABLE ĠIF ĠNOT ĠEXISTS Ġfriend Action On Gift Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ĠĠĠĠĠĠĠĠĠĠĠĠ ĠINTEGER ĠPRIMARY ĠKEY Ġ${ conn . auto Increment }, Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gift Id ĠĠĠĠĠĠĠĠ ĠINTEGER ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" userId ĠĠĠĠĠĠĠĠ ĠINTEGER ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" inter ested ĠĠĠĠ ĠINTEGER ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" buy ĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FOREIGN ĠKEY ( userId ) ĠREFERENCES Ġusers ( id ), Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FOREIGN ĠKEY ( gift Id ) ĠREFERENCES Ġg ifts ( id )) " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert ( gift Id : ĠLong , ĠuserId : ĠLong , Ġinterested : ĠBoolean , Ġbuy : ĠBu y Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconn . safe Execute ( INSERT , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 1 , Ġgift Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 2 , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Boolean ( 3 , Ġinterested ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset String ( 4 , Ġbuy . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Count Ġ= Ġexecute Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rowCount Ġ== Ġ 0 ) Ġthrow ĠException (" executeUpdate Ġreturn Ġno Ġrow Count ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( INSERT , Ġgift Id . toString (), ĠuserId . toString (), Ġinterested . toString (), Ġbuy . name )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Inter ested ( gift Id : ĠLong , ĠuserId : ĠLong , Ġinterested : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconn . safe Execute ( UPDATE _ INTER EST ED , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Boolean ( 1 , Ġinterested ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 2 , Ġgift Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 3 , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Count Ġ= Ġexecute Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rowCount Ġ== Ġ 0 ) Ġthrow ĠException (" executeUpdate Ġreturn Ġno Ġrow Count ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( UPDATE _ INTER EST ED , Ġinterested . toString (), Ġgift Id . toString (), ĠuserId . toString ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Buy ( gift Id : ĠLong , ĠuserId : ĠLong , Ġbuy : ĠBu y Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconn . safe Execute ( UPDATE _ BU Y , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset String ( 1 , Ġbuy . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 2 , Ġgift Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 3 , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Count Ġ= Ġexecute Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rowCount Ġ== Ġ 0 ) Ġthrow ĠException (" executeUpdate Ġreturn Ġno Ġrow Count ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( UPDATE _ BU Y , Ġbuy . name , Ġgift Id . toString (), ĠuserId . toString ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( gift Id : ĠLong , ĠuserId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconn . safe Execute ( DELETE , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 1 , Ġgift Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 2 , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Count Ġ= Ġexecute Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rowCount Ġ== Ġ 0 ) Ġthrow ĠException (" executeUpdate Ġreturn Ġno Ġrow Count ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( DELETE , Ġgift Id . toString (), ĠuserId . toString ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinterested ( gift Id : ĠLong , ĠuserId : ĠLong , Ġinterested : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġget Action ByUser And Gift ( gift Id , ĠuserId ) ĊĠĠĠĠĠĠĠ Ġif Ġ( current Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Inter ested Ġ= Ġcurrent . inter ested ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Buy Ġ= Ġcurrent . buy ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Inter ested Ġ== Ġinterested ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( inter ested Ġ|| Ġcurrent Buy Ġ!= ĠBu y Action . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Inter ested ( gift Id , ĠuserId , Ġinterested ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ( gift Id , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( inter ested ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( gift Id , ĠuserId , Ġinterested , ĠBu y Action . NONE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuy Action ( gift Id : ĠLong , ĠuserId : ĠLong , Ġbuy : ĠBu y Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġget Action ByUser And Gift ( gift Id , ĠuserId ) ĊĠĠĠĠĠĠĠ Ġif Ġ( current Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Inter ested Ġ= Ġcurrent . inter ested ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Buy Ġ= Ġcurrent . buy ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Buy Ġ== Ġbuy ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( current Inter ested Ġ|| Ġbuy Ġ!= ĠBu y Action . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Buy ( gift Id , ĠuserId , Ġbuy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ( gift Id , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( buy Ġ!= ĠBu y Action . NONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( gift Id , ĠuserId , Ġfalse , Ġbuy ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Friend Action On Gift ( gift Id : ĠLong ): ĠList < Db Friend Action On Gift > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconn . safe Execute ( SELECT _ SO ME _ BY _ G IFT , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 1 , Ġgift Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġexecute Query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Ġquery Answer To Db Friend Action On Gift ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( SELECT _ SO ME _ BY _ G IFT , Ġgift Id . toString ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Friend Action On G ifts User Has Action On ( userId : ĠLong ): ĠList < Db Friend Action On Gift > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconn . safe Execute ( SELECT _ SO ME _ BY _ USER , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 1 , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġexecute Query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Ġquery Answer To Db Friend Action On Gift ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( SELECT _ SO ME _ BY _ G IFT , ĠuserId . toString ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquery Answer To Db Friend Action On Gift ( res : ĠResultSet ): ĠArrayList < Db Friend Action On Gift > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= Ġarray ListOf < Db Friend Action On Gift >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( res . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . add ( convert One Res ( res )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconvert One Res ( res : ĠResultSet ): ĠDb Friend Action On Gift Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDb Friend Action On Gift ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getLong (" id "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getLong (" gift Id "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getLong (" userId "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getBoolean (" inter ested "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBu y Action . valueOf ( res . getString (" buy ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Action ByUser And Gift ( gift Id : ĠLong , ĠuserId : ĠLong ): ĠDb Friend Action On Gift ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconn . safe Execute ( SELECT _ BY _ G IFT _ AND _ USER , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 1 , Ġgift Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Long ( 2 , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġexecute Query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Ġif Ġ( res . next ()) Ġconvert One Res ( res ) Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠerrorMessage ( SELECT _ BY _ G IFT _ AND _ USER , Ġgift Id . toString (), ĠuserId . toString ())) ĊĠĠĠ Ġ} Ċ }