package Ġcom . gh stud ios . android . data . database Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . database . sqlite . SQLite QueryBuilder Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Xml Ċ import Ġcom . gh stud ios . android . data . classes .* Ċ import Ġcom . gh stud ios . android . data . curs ors .* Ċ import Ġcom . gh stud ios . android . data . util . Query Helper Ċ import Ġcom . gh stud ios . android . data . util . Sql Filter Ċ import Ġcom . gh stud ios . android . data . util . getLong Ċ import Ġcom . gh stud ios . android . data . util . localize Column Ċ import Ġcom . gh stud ios . android . util . first OrNull Ċ import Ġcom . read yst ates o ftware . sqlite asset . SQLite Asset Helper Ċ import Ġorg . xml pull . v 1 . Xml Pull Parser Ċ import Ġorg . xml pull . v 1 . Xml Pull Parser Factory Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . locks . Re entrant ReadWrite Lock Ċ import Ġkotlin . concurrent . read Ċ import Ġkotlin . concurrent . write Ċ Ċ /* ĊĠĠ ĠQUERY ĠREFER ENCE : Ċ Ċ For Ġqueries Ġwith Ġno ĠJOIN s : Ċ ĉ - Ġcall Ġwrap Helper () Ċ ĉ - Ġset Ġvalues Ġfor Ċĉĉ ĉ _ Distinct Ċĉĉ ĉ _ Table Ċĉĉ ĉ _ Columns Ċĉĉ ĉ _ Selection Ċĉĉ ĉ _ Selection Args Ċĉĉ ĉ _ GroupBy Ċĉĉ ĉ _ Having Ċĉĉ ĉ _ OrderBy Ċĉĉ ĉ _ Limit Ċ Ċ For Ġqueries Ġwith ĠJOIN s : Ċ ĉ - Ġcall Ġwrap Join Helper ( SQLite QueryBuilder Ġq b ) Ċ ĉ = Ġset Ġvalues Ġfor Ċĉ ĉ _ Columns Ċĉ ĉ _ Selection Ċĉ ĉ _ Selection Args Ċĉ ĉ _ GroupBy Ċĉ ĉ _ Having Ċĉ ĉ _ OrderBy Ċĉ ĉ _ Limit Ċ Ċ */ ĊĊ Ċ // Version Ġ 1 Ġ- Ġv 1 . 0 ĠĠ Ġ- ĠInitial ĠRelease Ċ // Version Ġ 2 Ġ- Ġv 1 . 0 . 1 Ġ- ĠAdded ĠAltern ate ĠDamage s / Weak nesses / A il ments Ċ // Version Ġ 3 Ġ- Ġv 1 . 0 . 2 Ġ- ĠFixed Ġissues Ġwith Ġsome Ġquest Ġdata Ċ // Version Ġ 4 Ġ- Ġv 1 . 1 . 0 Ġ- ĠChanged ĠWeak nesses Ġ/ ĠFixed Ġsome Ġdata Ġbugs Ġ/ ĠDefault ĠW ish lists + Set Ċ // Version Ġ 5 Ġ- Ġv 1 . 1 . 1 Ġ- ĠAdded Ġmore Ġlocalized Ġdata Ġ/ ĠJuly ĠD LC Ċ // Version Ġ 6 Ġ- Ġv 1 . 1 . 2 Ġ- ĠSe pt / Oct ĠD LC Ċ // Version Ġ 7 Ġ- Ġv 2 . 0 . 0 Ġ- ĠM H GU ĠRelease Ċ // Version Ġ 8 Ġ- Ġv 2 . 0 . 2 Ġ- ĠM H GU ĠData ĠFixes Ċ // Version Ġ 9 Ġ- Ġv 2 . 1 . 0 Ġ- ĠM H GU ĠData ĠFixes Ċ // Version Ġ 1 0 Ġ- Ġv 2 . 1 . 1 Ġ- ĠM H GU ĠData ĠFixes Ġ+ ĠKey Ġitems Ċ // Version Ġ 1 1 Ġ- Ġv 2 . 2 Ġ(? ?) Ġ- ĠFish Ġdata Ġ+ ĠArm or Set ĠH unter ĠType Ċ Ċ private Ġconst Ġval ĠDATABASE _ NAME Ġ= Ġ" mh gu . db " Ċ private Ġconst Ġval ĠDATABASE _ VERSION Ġ= Ġ 1 1 Ċ Ċ /** Ċ Ġ* ĠInitialize Ġthe Ġhelper Ġobject Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ċ Ġ*/ Ċ internal Ġclass ĠMon ster H unter Database Helper Ġconstructor ( ctx : ĠContext ): ĊĠĠĠĠĠĠĠ ĠSQLite Asset Helper ( ctx . application Context , ĠDATABASE _ NAME , Ġnull , ĠDATABASE _ VERSION ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" MH GU - DB - Helper " ĊĊĠĠĠ Ġprivate Ġval Ġcolumn _ name ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlocal ize Column (" name ") ĊĊĠĠĠ Ġprivate Ġval Ġcolumn _ description ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlocal ize Column (" description ") ĊĊĠĠĠ Ġ// ĠUse Ġthe Ġapplication Ġcontext , Ġwhich Ġwill Ġensure Ġthat Ġyou ĊĠĠĠ Ġ// Ġdon 't Ġaccidentally Ġleak Ġan ĠActivity 's Ġcontext . ĊĠĠĠ Ġ// ĠSee Ġthis Ġarticle Ġfor Ġmore Ġinformation : Ġhttp :// bit . ly / 6 LR z fx ĊĠĠĠ Ġprivate Ġval Ġmy Context Ġ= Ġctx . application Context ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAlias Ġfor Ġwrite able Database ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġinline Ġval Ġdb Ġget () Ġ= Ġthis . writable Database ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset For ced Upgrade () ĊĊĠĠĠĠĠĠĠ Ġif ( ctx . delete Database (" mh gen . db ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG ," Deleted Ġold Ġdatabase ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġclass Ġuses Ġan Ġapplication Ġcontext , Ġwhich Ġhas Ġno Ġleak . ĠSo Ġignore Ġthe Ġwarning . ĊĠĠĠĠĠĠĠ Ġ// Ġalso Ġnote : Ġlateinit Ġfails Ġwith ĠJ vm Static ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Instance : ĠMon ster H unter Database Helper ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlock Ġ= ĠRe entrant ReadWrite Lock () ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturns ĠSingleton Ġinstance Ġof Ġthe Ġhelper Ġobject ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġc ĠApplication Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠSingleton Ġinstance Ġof Ġhelper ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun ĠgetInstance ( ctx : ĠContext ): ĠMon ster H unter Database Helper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlock . read Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Instance Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Instance !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// JO E : This Ġwill Ġforce Ġdatabase Ġto Ġbe Ġcopied . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// c . getApplicationContext (). delete Database ( DATABASE _ NAME ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock . write Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Instance Ġ= ĠMon ster H unter Database Helper ( ctx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Instance !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Table Exists ( tableName : ĠString , Ġdb : ĠSQLite Database ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġdb . raw Query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" select ĠDISTINCT Ġtbl _ name Ġfrom Ġsqlite _ master Ġwhere Ġtbl _ name Ġ= Ġ'$ tableName '", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cursor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpre Copy Database ( db : ĠSQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . w ( TAG , Ġ" Pre Ġforcing Ġdatabase Ġupgrade !"); ĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġ" wishlist . xml " ĊĠĠĠĠĠĠĠ Ġval Ġf os : ĠFileOutputStream ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġas b _ set _ columns Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ AS B _ SET _ NAME , ĠS . COLUMN _ AS B _ SET _ RAN K , ĠS . COLUMN _ AS B _ SET _ H UN TER _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ AS B _ WE AP ON _ SLOT S , ĠS . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ HEAD _ ARM OR _ ID , ĠS . COLUMN _ HEAD _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ HEAD _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ HEAD _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ BODY _ ARM OR _ ID , ĠS . COLUMN _ BODY _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ BODY _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ BODY _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ AR MS _ ARM OR _ ID , ĠS . COLUMN _ AR MS _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ AR MS _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ AR MS _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ WA IST _ ARM OR _ ID , ĠS . COLUMN _ WA IST _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ WA IST _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ WA IST _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ LE GS _ ARM OR _ ID , ĠS . COLUMN _ LE GS _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ LE GS _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ LE GS _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ T AL IS MAN _ EXISTS , ĠS . COLUMN _ T AL IS MAN _ TYPE , ĠS . COLUMN _ T AL IS MAN _ SLOT S , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 3 _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ ID , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ POINTS , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ ID , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ POINTS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġas b _ set _ columns _ list Ġ= ĠArrays . asList (* as b _ set _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ columns Ġ= ĠarrayOf ( S . COLUMN _ W ISH LIST _ ID , ĠS . COLUMN _ W ISH LIST _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ columns _ list Ġ= ĠArrays . asList (* wishlist _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ data _ columns Ġ= ĠarrayOf ( S . COLUMN _ W ISH LIST _ DATA _ ID , ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID , ĠS . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID , ĠS . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY , ĠS . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED , ĠS . COLUMN _ W ISH LIST _ DATA _ PATH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ data _ columns _ list Ġ= ĠArrays . asList (* wishlist _ data _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ component _ columns Ġ= ĠarrayOf ( S . COLUMN _ W ISH LIST _ COMPONENT _ ID , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ NOTES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ component _ columns _ list Ġ= ĠArrays . asList (* wishlist _ component _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġf os Ġ= Ġmy Context . open File Output ( filename , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserializer Ġ= ĠXml . new Serializer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . setOutput ( fos , Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Document ( null , Ġjava . lang . Boolean . valueOf ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . set Feature (" http :// xml pull . org / v 1 / doc / features . html # indent - output ", Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Table Exists ( S . TABLE _ W ISH LIST , Ġdb )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwc Ġ= Ġdb . raw Query (" SELECT Ġ* ĠFROM Ġ" Ġ+ ĠS . TABLE _ W ISH LIST , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwc . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" wish lists ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! wc . is After Last ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" wishlist ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( wishlist _ column Ġin Ġwish list _ columns _ list ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġwish list _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wc . isNull ( wc . getColumnIndex ( wishlist _ column ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wishlist _ column Ġ== ĠS . COLUMN _ W ISH LIST _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( wc . getString ( wc . getColumnIndex ( wishlist _ column ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( Integer . toString ( wc . getInt ( wc . getColumnIndex ( wishlist _ column )))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġwish list _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" wishlist ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwc . moveTo Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" wish lists ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Table Exists ( S . TABLE _ W ISH LIST _ DATA , Ġdb )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw dc Ġ= Ġdb . raw Query (" SELECT Ġ* ĠFROM Ġ" Ġ+ ĠS . TABLE _ W ISH LIST _ DATA , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw dc . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" wishlist _ data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! w dc . is After Last ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" data ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( data _ column Ġin Ġwish list _ data _ columns _ list ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġdata _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( w dc . isNull ( w dc . getColumnIndex ( data _ column ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data _ column Ġ== ĠS . COLUMN _ W ISH LIST _ DATA _ PATH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( w dc . getString ( w dc . getColumnIndex ( data _ column ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( Integer . toString ( w dc . getInt ( w dc . getColumnIndex ( data _ column )))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġdata _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" data ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw dc . moveTo Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" wishlist _ data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw dc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Table Exists ( S . TABLE _ W ISH LIST _ COMPONENT , Ġdb )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw cc Ġ= Ġdb . raw Query (" SELECT Ġ* ĠFROM Ġ" Ġ+ ĠS . TABLE _ W ISH LIST _ COMPONENT , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw cc . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" wishlist _ components ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! w cc . is After Last ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" component ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( component _ column Ġin Ġwish list _ component _ columns _ list ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġcomponent _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( w cc . isNull ( w cc . getColumnIndex ( component _ column ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( Integer . toString ( w cc . getInt ( w cc . getColumnIndex ( component _ column )))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġcomponent _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" component ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw cc . moveTo Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" wishlist _ components ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw cc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Table Exists ( S . TABLE _ AS B _ SETS , Ġdb )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġas bc Ġ= Ġdb . raw Query (" SELECT Ġ* ĠFROM Ġ" Ġ+ ĠS . TABLE _ AS B _ SETS , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas bc . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" as b _ sets ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! as bc . is After Last ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġ" as b _ set ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( as b _ column Ġin Ġas b _ set _ columns _ list ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . start Tag ( null , Ġas b _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( as bc . isNull ( as bc . getColumnIndex ( as b _ column ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( as b _ column Ġ== ĠS . COLUMN _ AS B _ SET _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( as bc . getString ( as bc . getColumnIndex ( as b _ column ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . text ( Integer . toString ( as bc . getInt ( as bc . getColumnIndex ( as b _ column )))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġas b _ column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" as b _ set ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas bc . moveTo Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Tag ( null , Ġ" as b _ sets ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas bc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . end Document () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer . flush () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf os . close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġenum Ġclass ĠTags Ġ{ ĊĠĠĠĠĠĠĠ ĠW ISH LIST , ĠW ISH LIST _ DATA , ĠW ISH LIST _ COMPONENTS , ĠAS B _ SET , ĠOTHER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Copy Database ( db : ĠSQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . w ( TAG , Ġ" Post Ġforcing Ġdatabase Ġupgrade !"); ĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġ" wishlist . xml " ĊĊĠĠĠĠĠĠĠ Ġvar Ġfis : ĠFileInputStream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġis r : ĠInputStreamReader ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġdata : ĠString ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfis Ġ= Ġmy Context . open File Input ( filename ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ id : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem _ id : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquantity Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsatisfied Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclear _ wishlist Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġxml Factory Object Ġ= ĠXml Pull Parser Factory . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Parser Ġ= Ġxml Factory Object . new Pull Parser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Parser . setInput ( fis , Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcurrent _ tag Ġ= ĠTags . OTHER ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġas b _ set _ tables Ġ= ĠarrayOf ( S . COLUMN _ AS B _ SET _ NAME , ĠS . COLUMN _ AS B _ SET _ RAN K , ĠS . COLUMN _ AS B _ SET _ H UN TER _ TYPE , ĠS . COLUMN _ HEAD _ ARM OR _ ID , ĠS . COLUMN _ HEAD _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ HEAD _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ HEAD _ DE COR ATION _ 3 _ ID , ĠS . COLUMN _ BODY _ ARM OR _ ID , ĠS . COLUMN _ BODY _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ BODY _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ BODY _ DE COR ATION _ 3 _ ID , ĠS . COLUMN _ AR MS _ ARM OR _ ID , ĠS . COLUMN _ AR MS _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ AR MS _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ AR MS _ DE COR ATION _ 3 _ ID , ĠS . COLUMN _ WA IST _ ARM OR _ ID , ĠS . COLUMN _ WA IST _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ WA IST _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ WA IST _ DE COR ATION _ 3 _ ID , ĠS . COLUMN _ LE GS _ ARM OR _ ID , ĠS . COLUMN _ LE GS _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ LE GS _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ LE GS _ DE COR ATION _ 3 _ ID , ĠS . COLUMN _ T AL IS MAN _ EXISTS , ĠS . COLUMN _ T AL IS MAN _ TYPE , ĠS . COLUMN _ T AL IS MAN _ SLOT S , ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 1 _ ID , ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 2 _ ID , ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 3 _ ID , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ ID , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ POINTS , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ ID , ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ POINTS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġas b _ set _ tables _ list Ġ= ĠArrays . asList (* as b _ set _ tables ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ columns Ġ= ĠarrayOf ( S . COLUMN _ W ISH LIST _ ID , ĠS . COLUMN _ W ISH LIST _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ columns _ list Ġ= ĠArrays . asList (* wishlist _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ data _ columns Ġ= ĠarrayOf ( S . COLUMN _ W ISH LIST _ DATA _ ID , ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID , ĠS . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID , ĠS . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY , ĠS . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED , ĠS . COLUMN _ W ISH LIST _ DATA _ PATH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ data _ columns _ list Ġ= ĠArrays . asList (* wishlist _ data _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ component _ columns Ġ= ĠarrayOf ( S . COLUMN _ W ISH LIST _ COMPONENT _ ID , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY , ĠS . COLUMN _ W ISH LIST _ COMPONENT _ NOTES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwish list _ component _ columns _ list Ġ= ĠArrays . asList (* wishlist _ component _ columns ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// HashMap < String , ĠString > Ġrow _ hash Ġ= Ġnew ĠHashMap < String , ĠString >(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow _ values Ġ= ĠContent Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġevent Ġ= Ġmy Parser . eventType ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( event Ġ!= ĠXml Pull Parser . END _ DOCUMENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtagName Ġ= Ġmy Parser . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠXml Pull Parser . START _ TAG Ġ-> Ġif Ġ( tagName Ġ== Ġ" as b _ set ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// row _ hash . clear (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . AS B _ SET ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" wishlist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// row _ hash . clear (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . W ISH LIST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" data ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// row _ hash . clear (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . W ISH LIST _ DATA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" component ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// row _ hash . clear (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . W ISH LIST _ COMPONENTS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" as b _ sets ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete ( S . TABLE _ AS B _ SETS , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠXml Pull Parser . TEXT Ġ-> Ġtext Ġ= Ġmy Parser . text ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠXml Pull Parser . END _ TAG Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tagName Ġ== Ġ" as b _ set ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . OTHER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert ( S . TABLE _ AS B _ SETS , Ġnull , Ġrow _ values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" wishlist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . OTHER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clear _ wishlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete ( S . TABLE _ W ISH LIST , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// only Ġclear Ġthe Ġtable Ġonce Ġif Ġthere Ġis Ġdata Ġto Ġload ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear _ wishlist Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert ( S . TABLE _ W ISH LIST , Ġnull , Ġrow _ values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" data ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . OTHER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert ( S . TABLE _ W ISH LIST _ DATA , Ġnull , Ġrow _ values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tagName Ġ== Ġ" component ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent _ tag Ġ= ĠTags . OTHER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert ( S . TABLE _ W ISH LIST _ COMPONENT , Ġnull , Ġrow _ values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current _ tag Ġ== ĠTags . AS B _ SET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( as b _ set _ tables _ list . contains ( tagName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tagName Ġ== ĠS . COLUMN _ AS B _ SET _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( text . trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , ĠInteger . valueOf ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( current _ tag Ġ== ĠTags . W ISH LIST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wishlist _ columns _ list . contains ( tagName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tagName Ġ== ĠS . COLUMN _ W ISH LIST _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( text . trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , ĠInteger . valueOf ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( current _ tag Ġ== ĠTags . W ISH LIST _ DATA ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wishlist _ data _ columns _ list . contains ( tagName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tagName Ġ== ĠS . COLUMN _ W ISH LIST _ DATA _ PATH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( text . trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , ĠInteger . valueOf ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( current _ tag Ġ== ĠTags . W ISH LIST _ COMPONENTS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wishlist _ component _ columns _ list . contains ( tagName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text . trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put ( tagName , ĠInteger . valueOf ( text )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow _ values . put Null ( tagName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġmy Parser . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfis !!. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon For ced Upgrade ( db : ĠSQLite Database , Ġold Version : ĠInt , Ġnew Version : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on For ced Upgrade ( db , Ġold Version , Ġnew Version ) ĊĠĠĠĠĠĠĠĠ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClose Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Place holders ( len : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( len Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt Ġwill Ġlead Ġto Ġan Ġinvalid Ġquery Ġanyway Ġ.. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" No Ġplaceholders ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder ( len Ġ* Ġ 2 Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġlen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (", ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod : Ġused Ġfor Ġqueries Ġthat Ġhas Ġno ĠJOIN s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġwrap Helper ( qh : ĠQuery Helper ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwritable Database . query ( qh . Distinct , Ġq h . Table , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod : Ġused Ġfor Ġqueries Ġthat Ġhas Ġno ĠJOIN s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġwrap Helper ( db : ĠSQLite Database , Ġq h : ĠQuery Helper ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb . query ( qh . Distinct , Ġq h . Table , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod : Ġused Ġfor Ġqueries Ġthat Ġhas ĠJOIN s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġwrap Join Helper ( qb : ĠSQLite QueryBuilder , Ġq h : ĠQuery Helper ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ Log . d ( TAG , Ġ" qb : Ġ" Ġ+ Ġq b . build Query (_ Columns , Ġ_ Selection , Ġ_ Selection Args , Ġ_ GroupBy , Ġ_ Having , Ġ_ OrderBy , Ġ_ Limit )); ĊĠĠĠĠĠĠĠ Ġreturn Ġq b . query ( writable Database , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod : Ġused Ġfor Ġqueries Ġthat Ġhas ĠJOIN s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġwrap Join Helper ( db : ĠSQLite Database , Ġq b : ĠSQLite QueryBuilder , Ġq h : ĠQuery Helper ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ Log . d ( TAG , Ġ" qb : Ġ" Ġ+ Ġq b . build Query (_ Columns , Ġ_ Selection , Ġ_ Selection Args , Ġ_ GroupBy , Ġ_ Having , Ġ_ OrderBy , Ġ_ Limit )); ĊĠĠĠĠĠĠĠ Ġreturn Ġq b . query ( db , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMod ifies Ġa Ġquery Ġhelper Ġto Ġperform Ġsearching . ĊĠĠĠĠ Ġ* ĠThe Ġcurrent Ġalgorithm Ġis Ġ" beginning Ġof Ġword , Ġunion Ġmatch Ġall Ġwords " ĊĠĠĠĠ Ġ* ĠMod ifies ĠSelection Ġand Ġand ĠSelection Args ĊĠĠĠĠ Ġ* ĠNote : ĠThis Ġfails Ġif Ġthere Ġis Ġalready Ġarguments Ġon Ġthe Ġquery . ĊĠĠĠĠ Ġ* ĠTODO : Ġsupport Ġarguments Ġalready Ġexisting Ġby Ġexpand ing Ġthe Ġarray Ġand Ġadding Ġ" AND " ĊĠĠĠĠ Ġ* Ġ@ param Ġq h ĊĠĠĠĠ Ġ* Ġ@ param ĠcolumnName ĊĠĠĠĠ Ġ* Ġ@ param Ġsearch Term ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmodify Query For Search ( qh : ĠQuery Helper , ĠcolumnName : ĠString , Ġsearch Term : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWHERE Ġ( name ĠLIKE Ġ'% Ġword 1 %' ĠOR Ġname ĠLIKE Ġ' word 1 % ') ĊĠĠĠĠĠĠĠ Ġ// ĠĠ ĠAND Ġ( name ĠLIKE Ġ'% Ġword 2 %' ĠOR Ġname ĠLIKE Ġ' word 2 % ') ĊĊĠĠĠĠĠĠĠ Ġval Ġwords Ġ= Ġsearch Term . split (" Ġ". to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġval Ġselection Args Ġ= ĠarrayOf Null s < String >( words . size Ġ* Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġwords . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq h . Selection Ġ+= Ġ" ĠAND Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq h . Selection Ġ+= Ġ" ($ columnName ĠLIKE Ġ? ĠOR Ġ$ columnName ĠLIKE Ġ? )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselection Args [ i Ġ* Ġ 2 ] Ġ= Ġ"% Ġ${ words [ i ]} %" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselection Args [ i Ġ* Ġ 2 Ġ+ Ġ 1 ] Ġ= Ġwords [ i ] Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġselection Args ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠInsert Ġdata Ġto Ġa Ġtable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert Record ( table : ĠString , Ġvalues : ĠContent Values ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwritable Database . insert ( table , Ġnull , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠInsert Ġdata Ġto Ġa Ġtable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert Record ( db : ĠSQLite Database , Ġtable : ĠString , Ġvalues : ĠContent Values ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb . insert ( table , Ġnull , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠUpdate Ġdata Ġin Ġa Ġtable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Record ( table : ĠString , Ġstr Filter : ĠString , Ġvalues : ĠContent Values ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwritable Database . update ( table , Ġvalues , Ġstr Filter , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠDelete Ġdata Ġin Ġa Ġtable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete Record ( table : ĠString , Ġwhere : ĠString , Ġargs : ĠArray < String >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwritable Database . delete ( table , Ġwhere , Ġargs ) Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠCOMPONENT ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġcomponents Ġfor Ġa Ġcreated Ġitem Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Component Created ( id : ĠLong ): ĠComponent Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ COMPONENTS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġ// s " ĠAND Ġ" Ġ+ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID Ġ+ Ġ" Ġ< Ġ" Ġ+ ĠS . SECTION _ ARM OR ; ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" c . type " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠComponent Cursor ( wrap Join Helper ( builder Component (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġcomponents Ġfor Ġa Ġcomponent Ġitem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Component Component ( id : ĠLong ): ĠComponent Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ COMPONENTS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠComponent Cursor ( wrap Join Helper ( builder Component (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġcomponents Ġfor Ġa Ġcreated Ġitem Ġand Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Component Created Type ( id : ĠLong , Ġtype : ĠString ): ĠComponent Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ COMPONENTS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAND Ġ" Ġ+ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ TYPE Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid , Ġtype ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠComponent Cursor ( wrap Join Helper ( builder Component (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġcomponent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Component (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġc ._ id ĠAS Ġ_ id , Ġc . created _ item _ id , Ġc . component _ item _ id , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ c . quantity , Ġc . type , Ġcr . name ĠAS Ġcr name , Ġco . name ĠAS Ġcon ame ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġcomponents ĠAS Ġc ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġcr ĠON Ġc . created _ item _ id Ġ= Ġcr ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġco ĠON Ġc . component _ item _ id Ġ= Ġco ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġ" c " ĊĠĠĠĠĠĠĠ Ġval Ġcr Ġ= Ġ" cr " ĊĠĠĠĠĠĠĠ Ġval Ġco Ġ= Ġ" co " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ COMPONENTS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID ] Ġ= Ġc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID ] Ġ= Ġc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ COMPONENTS _ QU ANT ITY ] Ġ= Ġc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ COMPONENTS _ QU ANT ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ COMPONENTS _ TYPE ] Ġ= Ġc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ COMPONENTS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ COMPONENTS _ KEY ] Ġ= Ġc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ COMPONENTS _ KEY ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ cr Ġ+ ĠS . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ cr .$ column _ name ĠAS Ġ" Ġ+ Ġcr Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ cr Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ] Ġ= Ġcr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġcr Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ cr Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġcr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġcr Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ cr Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġcr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġcr Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ cr Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġcr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġcr Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ cr Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġcr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġcr Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ co Ġ+ ĠS . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ co .$ column _ name ĠAS Ġ" Ġ+ Ġco Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ co Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ] Ġ= Ġco Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġco Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ co Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġco Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġco Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ co Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġco Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġco Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĠĠĠĠĠĠĠ Ġprojection Map [ co Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġco Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġco Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ co Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġco Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġco Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ COMPONENTS Ġ+ Ġ" ĠAS Ġc " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġcr " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" c ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" cr ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġco Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" co ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠDE COR ATION ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġdecor ations Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Decor ations (): ĠDecor ation Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ DE COR ATIONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" skill _ 1 _ name ĠASC " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDecor ation Cursor ( wrap Join Helper ( builder Decoration (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġdecor ations Ġfiltered Ġby Ġa Ġsearch Ġterm . ĊĠĠĠĠ Ġ* ĠThis Ġquery Ġfilters Ġby Ġname , Ġand Ġnot Ġby Ġskill ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Decor ations Search ( search Term : ĠString ): ĠDecor ation Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsearch Filter Ġ= ĠSql Filter (" i .$ column _ name ", Ġsearch Term ) ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ DE COR ATIONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġsearch Filter . predicate ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġsearch Filter . parameters ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" skill _ 1 _ name ĠASC " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDecor ation Cursor ( wrap Join Helper ( builder Decoration (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġdecoration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Decoration ( id : ĠLong ): ĠDecor ation Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ DE COR ATIONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" i ._ id " Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDecor ation Cursor ( wrap Join Helper ( builder Decoration (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġdecor ations ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Decoration (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠSELECT Ġi ._ id ĠAS Ġitem _ id , Ġi . name , Ġi . j pn _ name , Ġi . type , Ġi . r arity , Ġi . carry _ capacity , Ġi . buy , Ġi . sell , Ġi . description , ĊĠĠĠĠĠĠĠ Ġ// ĉĉ Ġi . icon _ name , Ġi . armor _ du pe _ name _ fix , Ġd . num _ slots , Ġs 1 ._ id ĠAS Ġskill _ 1 _ id , Ġs 1 . name ĠAS Ġskill _ 1 _ name , Ġits 1 . point _ value ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠAS Ġskill _ 1 _ point , Ġs 2 ._ id ĠAS Ġskill _ 1 _ id , Ġs 2 . name ĠAS Ġskill _ 2 _ name , Ġits 2 . point _ value ĠAS Ġskill _ 2 _ point ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠFROM Ġdecor ations ĠAS Ġd ĠLEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi ĠON Ġd ._ id Ġ= Ġi ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠLEFT ĠOUT ER ĠJOIN Ġitem _ to _ skill _ tree ĠAS Ġits 1 ĠON Ġi ._ id Ġ= Ġits 1 . item _ id Ġand Ġits 1 . point _ value Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠLEFT ĠOUT ER ĠJOIN Ġskill _ trees ĠAS Ġs 1 ĠON Ġits 1 . skill _ tree _ id Ġ= Ġs 1 ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠLEFT ĠOUT ER ĠJOIN Ġitem _ to _ skill _ tree ĠAS Ġits 2 ĠON Ġi ._ id Ġ= Ġits 2 . item _ id Ġand Ġs 1 ._ id Ġ!= Ġits 2 . skill _ tree _ id ĊĠĠĠĠĠĠĠ Ġ// ĉĉ ĠLEFT ĠOUT ER ĠJOIN Ġskill _ trees ĠAS Ġs 2 ĠON Ġits 2 . skill _ tree _ id Ġ= Ġs 2 ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" item _ name "] Ġ= Ġ" i .$ column _ name ĠAS Ġitem _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ J PN _ NAME ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ J PN _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ TYPE ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ BU Y ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ BU Y ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SE LL ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ SE LL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ DESCRIPTION ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ DESCRIPTION ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ DE COR ATIONS _ NUM _ SLOT S ] Ġ= Ġ" d ." Ġ+ ĠS . COLUMN _ DE COR ATIONS _ NUM _ SLOT S ĊĠĠĠĠĠĠĠ Ġprojection Map [" skill _ 1 _ id "] Ġ= Ġ" s 1 ." Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" skill _ 1 _ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" skill _ 1 _ name "] Ġ= Ġ" s 1 .$ column _ name ĠAS Ġskill _ 1 _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [" skill _ 1 _ point _ value "] Ġ= Ġ" its 1 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ POINT _ VALUE Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" skill _ 1 _ point _ value " ĊĠĠĠĠĠĠĠ Ġprojection Map [" skill _ 2 _ id "] Ġ= Ġ" s 2 ." Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" skill _ 2 _ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" skill _ 2 _ name "] Ġ= Ġ" s 2 .$ column _ name ĠAS Ġskill _ 2 _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [" skill _ 2 _ point _ value "] Ġ= Ġ" its 2 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ POINT _ VALUE Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" skill _ 2 _ point _ value " ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ DE COR ATIONS Ġ+ Ġ" ĠAS Ġd " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" d ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ DE COR ATIONS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEM _ TO _ SK ILL _ TREE Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġits 1 Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" its 1 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ITEM _ ID Ġ+ Ġ" ĠAND Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" its 1 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ POINT _ VALUE Ġ+ Ġ" Ġ> Ġ 0 Ġ" Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ SK ILL _ TRE ES Ġ+ Ġ" ĠAS Ġs 1 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠON Ġ" Ġ+ Ġ" its 1 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" s 1 ." Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEM _ TO _ SK ILL _ TREE Ġ+ Ġ" ĠAS Ġits 2 Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" its 2 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ITEM _ ID Ġ+ Ġ" ĠAND Ġ" Ġ+ Ġ" s 1 ." Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ ID Ġ+ Ġ" Ġ!= Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" its 2 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ SK ILL _ TRE ES Ġ+ Ġ" ĠAS Ġs 2 " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠON Ġ" Ġ+ Ġ" its 2 ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" s 2 ." Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠG ATHER ING ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġgather ing Ġlocations Ġbased Ġon Ġitem Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Gather ing Item ( id : ĠLong ): ĠG ather ing Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ G ATHER ING ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" g ." Ġ+ ĠS . COLUMN _ G ATHER ING _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ(" g ." Ġ+ ĠS . COLUMN _ G ATHER ING _ RAN K Ġ+ Ġ" ĠDESC , Ġ" Ġ+ Ġ" l ." Ġ+ ĠS . COLUMN _ LOCATION S _ MAP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" ĠASC ") ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠG ather ing Cursor ( wrap Join Helper ( builder Gather ing (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġgather ing Ġitems Ġbased Ġon Ġlocation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Gather ing Location ( id : ĠLong ): ĠG ather ing Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ G ATHER ING ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" g ." Ġ+ ĠS . COLUMN _ G ATHER ING _ LOCATION _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠG ather ing Cursor ( wrap Join Helper ( builder Gather ing (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġgather ing Ġitems Ġbased Ġon Ġlocation Ġand Ġrank ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Gather ing Location Rank ( id : ĠLong , Ġrank : ĠString ): ĠG ather ing Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ G ATHER ING ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" g ." Ġ+ ĠS . COLUMN _ G ATHER ING _ LOCATION _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" Ġ+ Ġ" AND Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" g ." Ġ+ ĠS . COLUMN _ G ATHER ING _ RAN K Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid , Ġrank ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠG ather ing Cursor ( wrap Join Helper ( builder Gather ing (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor ĠG ather ing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Gather ing (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġg ._ id ĠAS Ġ_ id , Ġg . item _ id , Ġg . location _ id , Ġg . area , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ g . site , Ġg . site _ set , Ġg . site _ set _ percentage , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ g . site _ set _ g athers _ min , Ġg . site _ set _ g athers _ max , Ġg . rank , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ g . percentage , Ġi . name ĠAS Ġin ame , Ġl . name ĠAS Ġl name ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġgather ing ĠAS Ġg ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi ĠON Ġg . item _ id Ġ= Ġi ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġlocations ĠAS Ġl Ġon Ġg . location _ id Ġ= Ġl ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġ" g " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġ" l " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ ITEM _ ID ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ LOCATION _ ID ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ LOCATION _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ AREA ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ AREA ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ SITE ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ SITE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ RAN K ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ RAN K ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ RATE ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ RATE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ GROUP ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ GROUP ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ FIXED ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ FIXED ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ R ARE ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ R ARE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ G ATHER ING _ QU ANT ITY ] Ġ= Ġg Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ G ATHER ING _ QU ANT ITY ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ i Ġ+ ĠS . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ i .$ column _ name ĠAS Ġ" Ġ+ Ġi Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĠĠĠĠĠĠĠ Ġprojection Map [ l Ġ+ ĠS . COLUMN _ LOCATION S _ NAME ] Ġ= Ġ"$ l .$ column _ name ĠAS Ġ" Ġ+ Ġl Ġ+ ĠS . COLUMN _ LOCATION S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ l Ġ+ ĠS . COLUMN _ LOCATION S _ MAP ] Ġ= Ġl Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LOCATION S _ MAP Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġl Ġ+ ĠS . COLUMN _ LOCATION S _ MAP ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ G ATHER ING Ġ+ Ġ" ĠAS Ġg " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" g ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ G ATHER ING _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ LOCATION S Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġl Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" g ." Ġ+ ĠS . COLUMN _ G ATHER ING _ LOCATION _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" l ." Ġ+ ĠS . COLUMN _ LOCATION S _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠITEM ĠTO ĠSK ILL ĠT REE ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġskills Ġbased Ġon Ġitem Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Item To Skill TreeItem ( id : ĠLong ): ĠItem To Skill Tree Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" it st ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠItem To Skill Tree Cursor ( wrap Join Helper ( builder Item To Skill Tree (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġitems Ġbased Ġon Ġskill Ġtree ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Item To Skill Tree Skill Tree ( id : ĠLong , Ġtype : ĠString ): ĠItem To Skill Tree Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġquery Type Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== Ġ" Decoration ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Type Ġ= Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Type Ġ= Ġ" a ." Ġ+ ĠS . COLUMN _ ARM OR _ SLOT ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ ITEM _ TO _ SK ILL _ TREE ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" it st ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" Ġ+ Ġ" ĠAND Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Type Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid , Ġtype ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠItem To Skill Tree Cursor ( wrap Join Helper ( builder Item To Skill Tree (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor ĠItem To Skill Tree ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Item To Skill Tree (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġit st ._ id ĠAS Ġ_ id , Ġit st . item _ id , Ġit st . skill _ tree _ id , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ it st . point _ value , Ġi . name ĠAS Ġin ame , Ġs . name ĠAS Ġs name ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġitem _ to _ skill _ tree ĠAS Ġit st ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi ĠON Ġit st . item _ id Ġ= Ġi ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġskill _ trees ĠAS Ġs ĠON Ġit st . skill _ tree _ id Ġ= Ġs ._ id ; ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġarm or ĠAS Ġa ĠON Ġi ._ id Ġ= Ġa ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġdecor ations ĠAS Ġd ĠON Ġi ._ id Ġ= Ġd ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġit st Ġ= Ġ" it st " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġ" s " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġit st Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ITEM _ ID ] Ġ= Ġit st Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID ] Ġ= Ġit st Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ POINT _ VALUE ] Ġ= Ġit st Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ POINT _ VALUE ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ i Ġ+ ĠS . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ i .$ column _ name ĠAS Ġ" Ġ+ Ġi Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ s Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ NAME ] Ġ= Ġ"$ s .$ column _ name ĠAS Ġ" Ġ+ Ġs Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ NAME ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ ITEM _ TO _ SK ILL _ TREE Ġ+ Ġ" ĠAS Ġit st " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" it st ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ SK ILL _ TRE ES Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġs Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" it st ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ SK ILL _ TREE _ SK ILL _ TREE _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" s ." Ġ+ ĠS . COLUMN _ SK ILL _ TRE ES _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ARM OR Ġ+ Ġ" ĠAS Ġa " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" a ." Ġ+ ĠS . COLUMN _ ARM OR _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ DE COR ATIONS Ġ+ Ġ" ĠAS Ġd " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" d ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ DE COR ATIONS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠITEM ĠTO ĠM ATER IAL ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun Ġquery Items For Material ( material _ item _ id : ĠLong ): ĠItem To Material Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" itm ." Ġ+ ĠS . COLUMN _ ITEM _ TO _ MAT ERIAL _ MAT ERIAL _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġmaterial _ item _ id ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" itm . amount ĠDESC " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠItem To Material Cursor ( wrap Join Helper ( builder Item To Material (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuilder Item To Material (): ĠSQLite QueryBuilder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġit m Ġ= Ġ" itm " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġ// Material ĠMapping ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ MAT ERIAL _ ID ] Ġ= Ġit m Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ MAT ERIAL _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ MAT ERIAL _ ITEM _ ID ] Ġ= Ġit m Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ MAT ERIAL _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ MAT ERIAL _ AMOUNT ] Ġ= Ġit m Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ MAT ERIAL _ AMOUNT ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEM _ TO _ MAT ERIAL _ MAT ERIAL _ ID ] Ġ= Ġit m Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEM _ TO _ MAT ERIAL _ MAT ERIAL _ ID ĊĊĠĠĠĠĠĠĠ Ġ// Item ĊĠĠĠĠĠĠĠ Ġprojection Map [ i Ġ+ ĠS . COLUMN _ ITEMS _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġi Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ ITEM _ TO _ MAT ERIAL Ġ+ Ġ" ĠAS Ġit m " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" itm ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ ITEM _ TO _ MAT ERIAL _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠLOC ATION ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġlocations Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Locations (): ĠLocation Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġnote Ġ 1 0 0 Ġis Ġthe Ġcutoff Ġfor Ġnight Ġversions . ĊĠĠĠĠĠĠĠ Ġreturn ĠLocation Cursor ( db . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id , Ġ$ column _ name Ġname , Ġname _ ja , Ġmap ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġ${ S . TABLE _ LOCATION S } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġ_ id Ġ< Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġ"" ", Ġempty Array ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġlocation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Location ( id : ĠLong ): ĠLocation ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLocation Cursor ( db . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id , Ġ$ column _ name Ġname , Ġname _ ja , Ġmap ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġ${ S . TABLE _ LOCATION S } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġ_ id Ġ= Ġ? ĊĠĠĠĠĠĠĠ Ġ"" ", ĠarrayOf ( id . toString ())) ). first OrNull Ġ{ Ġit . location Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* **** ĠH OR N ĠME LO DI ES ĠQU ER IES Ġ********************************* ******** ***** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġme lod ies Ġavailable Ġfrom Ġa Ġgiven Ġset Ġof Ġnotes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Me lod ies From Notes ( notes : ĠString ): ĠH orn Me lod ies Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ" SELECT Ġ* ĠFROM Ġh orn _ me lod ies ĠWHERE Ġnotes Ġ= Ġnotes " ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ H OR N _ ME LO DI ES ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ H OR N _ ME LO DI ES _ NOTES Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( notes ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠH orn Me lod ies Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ ******************************** ĠMON STER ĠA IL MENT ĠQU ER IES Ġ Ġ*/ ĊĠĠĠ Ġ/* ĠGet Ġall Ġa il ments Ġa Ġfrom Ġa Ġparticular Ġmonster Ġ*/ ĊĠĠĠ Ġfun Ġquery A il ments From Monster ( id : ĠLong ): ĠMon ster A il ment Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSELECT Ġ* ĠFROM Ġmonster _ ail ment ĠWHERE Ġmonster _ id Ġ= Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ AIL MENT ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ AIL MENT _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster A il ment Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ ******************************** * ĠMON STER ĠH AB IT AT ĠQU ER IES Ġ Ġ*/ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġcursor Ġwith Ġa Ġquery Ġto Ġgrab Ġall Ġhabit ats Ġof Ġa Ġmonster ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġid Ġof Ġthe Ġmonster Ġto Ġquery ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġhabit at Ġcursor ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery H abit at Monster ( id : ĠLong ): ĠMon ster H abit at Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSelect Ġ* ĠFROM Ġmonster _ habit at ĠWHERE Ġmonster _ id Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ HAB IT AT ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ HAB IT AT _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster H abit at Cursor ( wrap Join Helper ( builder H abit at ( qh . Distinct ), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġcursor Ġwith Ġa Ġquery Ġto Ġgrab Ġall Ġmon sters Ġby Ġa Ġlocation ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġid Ġof Ġthe Ġlocation Ġto Ġquery ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġhabit at Ġcursor ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery H abit at Location ( id : ĠLong ): ĠMon ster H abit at Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSelect Ġ* ĠFROM Ġmonster _ habit at ĠWHERE Ġlocation _ id Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ HAB IT AT ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ HAB IT AT _ LOCATION _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" m " Ġ+ ĠS . COLUMN _ MON ST ERS _ SORT _ NAME Ġ+ Ġ" ĠASC " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster H abit at Cursor ( wrap Join Helper ( builder H abit at ( qh . Distinct ), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor ĠH abit at / Monster / Location Ċ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder H abit at ( Distinct : ĠBoolean ): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġ" h " ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġ" m " ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġ" l " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġh Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" start _ area "] Ġ= Ġh Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ START Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" start _ area " ĊĠĠĠĠĠĠĠ Ġprojection Map [" move _ area "] Ġ= Ġh Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ ARE AS Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" move _ area " ĊĠĠĠĠĠĠĠ Ġprojection Map [" rest _ area "] Ġ= Ġh Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ REST Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" rest _ area " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ l Ġ+ ĠS . COLUMN _ LOCATION S _ ID ] Ġ= Ġl Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LOCATION S _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġl Ġ+ ĠS . COLUMN _ LOCATION S _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ l Ġ+ ĠS . COLUMN _ LOCATION S _ NAME ] Ġ= Ġ"$ l .$ column _ name ĠAS Ġ" Ġ+ Ġl Ġ+ ĠS . COLUMN _ LOCATION S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ l Ġ+ ĠS . COLUMN _ LOCATION S _ MAP ] Ġ= Ġl Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LOCATION S _ MAP Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġl Ġ+ ĠS . COLUMN _ LOCATION S _ MAP ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ ID ] Ġ= Ġm Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON ST ERS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ SORT _ NAME ] Ġ= Ġm Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON ST ERS _ SORT _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ SORT _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ NAME ] Ġ= Ġ"$ m .$ column _ name ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ CLASS ] Ġ= Ġm Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON ST ERS _ CLASS Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ CLASS ĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ FILE _ LOCATION ] Ġ= Ġm Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON ST ERS _ FILE _ LOCATION Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ FILE _ LOCATION ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ HAB IT AT Ġ+ Ġ" ĠAS Ġh " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ MON ST ERS Ġ+ Ġ" ĠAS Ġm " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" h ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ HAB IT AT _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" m ." Ġ+ ĠS . COLUMN _ MON ST ERS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ LOCATION S Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġl Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" h ." Ġ+ ĠS . COLUMN _ HAB IT AT _ LOCATION _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" l ." Ġ+ ĠS . COLUMN _ LOCATION S _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Distinct ( Distinct ) ĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠMON STER ĠSTATUS ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġmonster Ġstatus Ġinfo Ġfor Ġa Ġmonster Ċĉ Ġ* Ġ@ param Ġid ĠThe Ġmonster Ġid Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Monster Status ( id : ĠLong ): ĠMon ster Status Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ" SELECT Ġ* ĠFROM Ġmonster _ status ĠWHERE Ġmonster _ id Ġ= Ġid " ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ MON STER _ STATUS ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ MON STER _ STATUS _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster Status Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠMON STER ĠDAMAGE ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġmonster Ġdamage Ġfor Ġa Ġmonster Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Monster Damage ( id : ĠLong ): ĠMon ster Damage Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ" SELECT Ġ* ĠFROM Ġmonster _ damage ĠWHERE Ġmonster _ id Ġ= Ġid " ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ MON STER _ DA MAGE ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ MON STER _ DA MAGE _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster Damage Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠMON STER ĠTO ĠQ UEST ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġquest s Ġbased Ġon Ġmonster Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Monster To Quest Monster ( id : ĠLong ): ĠMon ster To Quest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ MON STER _ TO _ QUEST ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" mt q ." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// JO E : ĠOrder Ġthem Ġspecifically ĠV illage Ġ- ĠGuild Ġ- ĠPer mit Ġ- Ġ( Any Ġothers Ġin Ġalphabet ical Ġorder Ġby Ġconc ating Ġthem Ġwith Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" CASE Ġq ." Ġ+ ĠS . COLUMN _ QUEST S _ HUB Ġ+ Ġ" ĠWHEN Ġ' V illage ' ĠTHEN Ġ 0 ĠWHEN Ġ' Guild ' ĠTHEN Ġ 1 ĠWHEN Ġ' Permit ' ĠTHEN Ġ 2 ĠELSE Ġ( 3 || q ." Ġ+ ĠS . COLUMN _ QUEST S _ HUB Ġ+ Ġ") ĠEND , Ġ" Ġ+ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S Ġ+ Ġ" ĠASC " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster To Quest Cursor ( wrap Join Helper ( builder Monster To Quest ( qh . Distinct ), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġmon sters Ġbased Ġon Ġquest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Monster To Quest Quest ( id : ĠLong ): ĠMon ster To Quest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ MON STER _ TO _ QUEST ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" mt q ." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster To Quest Cursor ( wrap Join Helper ( builder Monster To Quest With H abit ats ( qh . Distinct ), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor ĠMon ster To Quest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Monster To Quest ( Distinct : ĠBoolean ): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġmt q ._ id ĠAS Ġ_ id , Ġmt q . monster _ id , Ġmt q . quest _ id , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ mt q . unstable , Ġm . name ĠAS Ġm name , Ġq . name ĠAS Ġq name , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ q . hub , Ġq . stars ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġmonster _ to _ quest ĠAS Ġmt q ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġmon sters ĠAS Ġm ĠON Ġmt q . monster _ id Ġ= Ġm ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġquest s ĠAS Ġq ĠON Ġmt q . quest _ id Ġ= Ġq ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġmt q Ġ= Ġ" mt q " ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġ" m " ĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġ" q " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ UN ST ABLE ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ UN ST ABLE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ HY PER ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ HY PER ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ NAME ] Ġ= Ġ"$ m .$ column _ name ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON ST ERS _ FILE _ LOCATION ] Ġ= Ġm Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON ST ERS _ FILE _ LOCATION ĊĠĠĠĠĠĠĠ Ġprojection Map [ q Ġ+ ĠS . COLUMN _ QUEST S _ NAME ] Ġ= Ġ"$ q .$ column _ name ĠAS Ġ" Ġ+ Ġq Ġ+ ĠS . COLUMN _ QUEST S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ HUB ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ HUB ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ STAR S ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ MON STER _ TO _ QUEST Ġ+ Ġ" ĠAS Ġmt q " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ MON ST ERS Ġ+ Ġ" ĠAS Ġm " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" mt q ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" m ." Ġ+ ĠS . COLUMN _ MON ST ERS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ QUEST S Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġq Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" mt q ." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Distinct ( Distinct ) ĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor ĠMon ster To Quest Ċ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Monster To Quest With H abit ats ( Distinct : ĠBoolean ): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġmt q ._ id ĠAS Ġ_ id , Ġmt q . monster _ id , Ġmt q . quest _ id , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ mt q . unstable , Ġm . name ĠAS Ġm name , Ġq . name ĠAS Ġq name , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ q . hub , Ġq . stars , mh . start _ area , mh . move _ area , mh . rest _ area ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġmonster _ to _ quest ĠAS Ġmt q ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġmon sters ĠAS Ġm ĠON Ġmt q . monster _ id Ġ= Ġm ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġquest s ĠAS Ġq ĠON Ġmt q . quest _ id Ġ= Ġq ._ id ; ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ ĠLEFT ĠOUT ER ĠJOIN Ġmonster _ habit at Ġm h ĠON Ġm h . monster _ id = m ._ id ĠAND Ġm h . location _ id = q . location _ id ĊĊĠĠĠĠĠĠĠ Ġval Ġmt q Ġ= Ġ" mt q " ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġ" m " ĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġ" q " ĊĠĠĠĠĠĠĠ Ġval Ġm h Ġ= Ġ" mh " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ UN ST ABLE ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ UN ST ABLE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON STER _ TO _ QUEST _ HY PER ] Ġ= Ġmt q Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ HY PER ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ m Ġ+ ĠS . COLUMN _ MON ST ERS _ NAME ] Ġ= Ġ"$ m .$ column _ name ĠAS Ġ" Ġ+ Ġm Ġ+ ĠS . COLUMN _ MON ST ERS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ MON ST ERS _ FILE _ LOCATION ] Ġ= Ġm Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ MON ST ERS _ FILE _ LOCATION ĊĠĠĠĠĠĠĠ Ġprojection Map [ q Ġ+ ĠS . COLUMN _ QUEST S _ NAME ] Ġ= Ġ"$ q .$ column _ name ĠAS Ġ" Ġ+ Ġq Ġ+ ĠS . COLUMN _ QUEST S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ HUB ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ HUB ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ STAR S ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HAB IT AT _ START ] Ġ= Ġm h Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ START ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HAB IT AT _ ARE AS ] Ġ= Ġm h Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ ARE AS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HAB IT AT _ REST ] Ġ= Ġm h Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HAB IT AT _ REST ĊĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ MON STER _ TO _ QUEST Ġ+ Ġ" ĠAS Ġmt q " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ MON ST ERS Ġ+ Ġ" ĠAS Ġm " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" mt q ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ MON STER _ TO _ QUEST _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" m ." Ġ+ ĠS . COLUMN _ MON ST ERS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ QUEST S Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġq Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" mt q ." Ġ+ ĠS . COLUMN _ MON STER _ TO _ QUEST _ QUEST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ HAB IT AT Ġ+ Ġ" ĠAS Ġm h ĠON Ġm h ." Ġ+ ĠS . COLUMN _ HAB IT AT _ MON STER _ ID Ġ+ Ġ"= Ġm ." Ġ+ ĠS . COLUMN _ MON ST ERS _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAND Ġm h ." Ġ+ ĠS . COLUMN _ HAB IT AT _ LOCATION _ ID Ġ+ Ġ"= ĠCASE ĠWHEN Ġq ." Ġ+ ĠS . COLUMN _ QUEST S _ LOCATION _ ID Ġ+ Ġ">= 1 0 0 Ġthen Ġq ." Ġ+ ĠS . COLUMN _ QUEST S _ LOCATION _ ID Ġ+ Ġ"- 1 0 0 ĠELSE Ġq ." Ġ+ ĠS . COLUMN _ QUEST S _ LOCATION _ ID Ġ+ Ġ" ĠEND " ĊĊĊĊ ĊĠĠĠĠĠĠĠ ĠQ B . set Distinct ( Distinct ) ĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/ ******************************** * ĠMON STER ĠWE AK NESS ĠQU ER IES Ġ Ġ*/ ĊĠĠĠ Ġ/* ĠGet Ġall Ġweak nesses Ġa Ġfrom Ġa Ġparticular Ġmonster Ġ*/ ĊĠĠĠ Ġfun Ġquery Weak ness From Monster ( id : ĠLong ): ĠMon ster Weak ness Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSELECT Ġ* ĠFROM Ġmonster _ ail ment ĠWHERE Ġmonster _ id Ġ= Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ WE AK NESS ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ WE AK NESS _ MON STER _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMon ster Weak ness Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠQ UEST ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġquest s Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest s (): ĠQuest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST S ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Cursor ( wrap Join Helper ( builder Quest (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġquest s Ġby Ġa Ġfilter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest s Search ( search Term : ĠString ): ĠQuest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST S ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġmodify Query For Search ( qh , Ġ" q .$ column _ name ", Ġsearch Term ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Cursor ( wrap Join Helper ( builder Quest (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġquest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest ( id : ĠLong ): ĠQuest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST S ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Cursor ( wrap Join Helper ( builder Quest (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġquest Ġbased Ġon Ġhub ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest Hub ( hub : ĠQuest Hub ): ĠQuest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST S ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ HUB Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( hub . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġif ( hub Ġ== ĠQuest Hub . PER MIT ) Ġ"_ id , permit _ monster _ id " Ġelse ĠS . COLUMN _ QUEST S _ SORT _ ORDER ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Cursor ( wrap Join Helper ( builder Quest (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġquest Ġbased Ġon Ġhub Ġand Ġstars ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest Hub Star ( hub : ĠQuest Hub , Ġstars : ĠString ): ĠQuest Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST S ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ HUB Ġ+ Ġ" Ġ= Ġ? " Ġ+ Ġ" ĠAND Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S Ġ+ Ġ" Ġ= Ġ? " Ġ+ Ġ" ĠAND Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ NAME Ġ+ Ġ" Ġ<> Ġ'' " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( hub . toString (), Ġstars ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Cursor ( wrap Join Helper ( builder Quest (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġquest s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Quest (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġq ._ id ĠAS Ġ_ id , Ġq . name ĠAS Ġq name , Ġq . goal , Ġq . hub , Ġq . type , Ġq . stars , Ġq . location _ id , Ġq . time _ limit , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ q . fee , Ġq . reward , Ġq . hr p , ĉ l . name ĠAS Ġl name , Ġl . map ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġquest s ĠAS Ġq ĠLEFT ĠOUT ER ĠJOIN Ġlocations ĠAS Ġl ĠON Ġq . location _ id Ġ= Ġl ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġ" q " ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġ" l " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠLinkedHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġcolumn _ goal Ġ= Ġlocal ize Column ( S . COLUMN _ QUEST S _ GO AL ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn _ sub _ goal Ġ= Ġlocal ize Column ( S . COLUMN _ QUEST S _ SUB _ GO AL ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn _ flavor Ġ= Ġlocal ize Column ( S . COLUMN _ QUEST S _ FL AV OR ) ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ q Ġ+ ĠS . COLUMN _ QUEST S _ NAME ] Ġ= Ġ"$ q .$ column _ name ĠAS Ġ" Ġ+ Ġq Ġ+ ĠS . COLUMN _ QUEST S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ q Ġ+ ĠS . COLUMN _ QUEST S _ J PN _ NAME ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ J PN _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġq Ġ+ ĠS . COLUMN _ QUEST S _ J PN _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ GO AL ] Ġ= Ġ"$ q .$ column _ goal ĠAS Ġ${ S . COLUMN _ QUEST S _ GO AL }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ HUB ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ HUB ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ RAN K ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ RAN K ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ TYPE ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ STAR S ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ LOCATION _ ID ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ LOCATION _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ TIME _ LIMIT ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ TIME _ LIMIT ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ F EE ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ F EE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ RE WARD ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ RE WARD ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ HR P ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ HR P ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ SUB _ GO AL ] Ġ= Ġ Ġ"$ q .$ column _ sub _ goal ĠAS Ġ${ S . COLUMN _ QUEST S _ SUB _ GO AL }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ SUB _ RE WARD ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ SUB _ RE WARD ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ SUB _ HR P ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ SUB _ HR P ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ GO AL _ TYPE ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ GO AL _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ H UN TER _ TYPE ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ H UN TER _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ l Ġ+ ĠS . COLUMN _ LOCATION S _ NAME ] Ġ= Ġ"$ l .$ column _ name ĠAS Ġ" Ġ+ Ġl Ġ+ ĠS . COLUMN _ LOCATION S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ LOCATION S _ MAP ] Ġ= Ġl Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LOCATION S _ MAP ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ FL AV OR ] Ġ= Ġ"$ q .$ column _ flavor ĠAS Ġ${ S . COLUMN _ QUEST S _ FL AV OR }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ METADATA ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ METADATA ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ PER MIT _ MON STER _ ID ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ PER MIT _ MON STER _ ID ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ QUEST S Ġ+ Ġ" ĠAS Ġq " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ LOCATION S Ġ+ Ġ" ĠAS Ġl " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" q ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ QUEST S _ LOCATION _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" l ." Ġ+ ĠS . COLUMN _ LOCATION S _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠQ UEST ĠRE WARD ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġquest Ġreward Ġquest s Ġbased Ġon Ġitem Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest Reward Item ( id : ĠLong ): ĠQuest Reward Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST _ RE WAR DS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" qr ." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ HUB Ġ+ Ġ" ĠASC , Ġ" Ġ+ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S Ġ+ Ġ" ĠASC " ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Reward Cursor ( wrap Join Helper ( builder Quest Reward (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġquest Ġreward Ġitems Ġbased Ġon Ġquest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Quest Reward Quest ( id : ĠLong ): ĠQuest Reward Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ QUEST _ RE WAR DS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" qr ." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ QUEST _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= ĠS . COLUMN _ QUEST _ RE WAR DS _ RE WARD _ SLOT ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠQuest Reward Cursor ( wrap Join Helper ( builder Quest Reward (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor ĠQuest Reward ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Quest Reward (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġqr ._ id ĠAS Ġ_ id , Ġqr . quest _ id , Ġqr . item _ id , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ qr . reward _ slot , Ġqr . percentage , Ġqr . stack _ size , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ q . name ĠAS Ġq name , Ġq . hub , Ġq . stars , Ġi . name ĠAS Ġin ame ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġquest _ rewards ĠAS Ġqr ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġquest s ĠAS Ġq ĠON Ġqr . quest _ id Ġ= Ġq ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi ĠON Ġqr . item _ id Ġ= Ġi ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġqr Ġ= Ġ" qr " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġ" q " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġqr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST _ RE WAR DS _ ITEM _ ID ] Ġ= Ġqr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST _ RE WAR DS _ QUEST _ ID ] Ġ= Ġqr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ QUEST _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST _ RE WAR DS _ RE WARD _ SLOT ] Ġ= Ġqr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ RE WARD _ SLOT ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST _ RE WAR DS _ PERCENT AGE ] Ġ= Ġqr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ PERCENT AGE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST _ RE WAR DS _ STACK _ SIZE ] Ġ= Ġqr Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ STACK _ SIZE ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ i Ġ+ ĠS . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ i .$ column _ name ĠAS Ġ" Ġ+ Ġi Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĠĠĠĠĠĠĠ Ġprojection Map [ q Ġ+ ĠS . COLUMN _ QUEST S _ NAME ] Ġ= Ġ"$ q .$ column _ name ĠAS Ġ" Ġ+ Ġq Ġ+ ĠS . COLUMN _ QUEST S _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ HUB ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ HUB ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ STAR S ] Ġ= Ġq Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ QUEST S _ STAR S ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ QUEST _ RE WAR DS Ġ+ Ġ" ĠAS Ġqr " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" qr ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ QUEST _ RE WAR DS _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ QUEST S Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġq Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" qr ." Ġ+ ĠS . COLUMN _ QUEST _ RE WAR DS _ QUEST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠSK ILL ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ// ĉ public ĠSkill Cursor Ġquery Skill ( long Ġid ) Ġ{ ĊĠĠĠ Ġ// ĉ ĉ // Ġ" SELECT Ġ* ĠFROM Ġskills ĠWHERE Ġskill _ id Ġ= Ġid " ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĉ ĉ _ Distinct Ġ= Ġfalse ; ĊĠĠĠ Ġ// ĉ ĉ _ Table Ġ= ĠS . TABLE _ SK IL LS ; ĊĠĠĠ Ġ// ĉ ĉ _ Columns Ġ= Ġnull ; ĊĠĠĠ Ġ// ĉ ĉ _ Selection Ġ= ĠS . COLUMN _ SK IL LS _ ID Ġ+ Ġ" Ġ= Ġ? "; ĊĠĠĠ Ġ// ĉ ĉ _ Selection Args Ġ= Ġnew ĠString []{ ĠString . valueOf ( id ) Ġ}; ĊĠĠĠ Ġ// ĉ ĉ _ GroupBy Ġ= Ġnull ; ĊĠĠĠ Ġ// ĉ ĉ _ Having Ġ= Ġnull ; ĊĠĠĠ Ġ// ĉ ĉ _ OrderBy Ġ= Ġnull ; ĊĠĠĠ Ġ// ĉ ĉ _ Limit Ġ= Ġnull ; ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĉ ĉ return Ġnew ĠSkill Cursor ( wrap Helper ()); ĊĠĠĠ Ġ// ĉ } ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġskills Ġfor Ġa Ġskill Ġtree Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Skills From Tree ( tree Id : ĠLong ): ĠSkill Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSkill Cursor ( db . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id , Ġ$ column _ name Ġname , Ġname _ ja , Ġ$ column _ description Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ tree _ id , Ġrequired _ skill _ tree _ points ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġ${ S . TABLE _ SK IL LS } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġskill _ tree _ id Ġ= Ġ? ĊĠĠĠĠĠĠĠĠĠĠĠ ĠORDER ĠBY Ġrequired _ skill _ tree _ points ĠDESC ĊĠĠĠĠĠĠĠ Ġ"" ", ĠarrayOf ( tree Id . toString ()))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠSK ILL ĠT REE ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġskill Ġt ress Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Skill Trees (): ĠSkill Tree Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSkill Tree Cursor ( db . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id , Ġ$ column _ name Ġas Ġname , Ġname _ ja ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġ${ S . TABLE _ SK ILL _ TRE ES } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠORDER ĠBY Ġ$ column _ name ĠASC ĊĠĠĠĠĠĠĠ Ġ"" ", Ġempty Array ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet ĠSkill Ġtrees Ġfiltered Ġby Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Skill Trees Search ( search Term : ĠString ?): ĠSkill Tree Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( search Term Ġ== Ġnull Ġ|| Ġsearch Term . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġquery Skill Trees () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠSql Filter ( column _ name , Ġsearch Term ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSkill Tree Cursor ( db . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id , Ġ$ column _ name Ġas Ġname , Ġname _ ja ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġ${ S . TABLE _ SK ILL _ TRE ES } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġ${ filter . predicate } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠORDER ĠBY Ġ$ column _ name ĠASC ĊĠĠĠĠĠĠĠ Ġ"" ", Ġfilter . parameters )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġskill Ġtree ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Skill Tree ( id : ĠLong ): ĠSkill Tree ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ" SELECT ĠDISTINCT Ġ* ĠFROM Ġskill _ trees ĠWHERE Ġ_ id Ġ= Ġid ĠLIMIT Ġ 1 " ĊĠĠĠĠĠĠĠ Ġreturn ĠSkill Tree Cursor ( db . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id , Ġ$ column _ name Ġas Ġname , Ġname _ ja ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġ${ S . TABLE _ SK ILL _ TRE ES } ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġ_ id Ġ= Ġ? ĊĠĠĠĠĠĠĠ Ġ"" ", ĠarrayOf ( id . toString ())) ). first OrNull Ġ{ Ġit . skill Tree Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠWE AP ON ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġweapon Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Weapon (): ĠWeapon Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Cursor ( wrap Join Helper ( builder Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġweapon ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Weapon ( id : ĠLong ): ĠWeapon Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" w ." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Cursor ( wrap Join Helper ( builder Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġmultiple Ġspecific Ġweapon ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery We apons ( ids : ĠLong Array ): ĠWeapon Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġstring _ list Ġ= ĠarrayOf Null s < String >( ids . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġids . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring _ list [ i ] Ġ= Ġids [ i ]. toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" w ." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" ĠIN Ġ(" Ġ+ Ġmake Place holders ( ids . size ) Ġ+ Ġ")" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġstring _ list ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Cursor ( wrap Join Helper ( builder Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Weapon Type For Weapon ( id : ĠLong ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= ĠarrayOf ( S . COLUMN _ WE AP ONS _ W TYPE ) ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( java . lang . Long . toString ( id )) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġwritable Database . query ( qh . Table , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġweapon Ġbased Ġon Ġweapon Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Weapon Type ( type : ĠString , Ġfinal Only : ĠBoolean ): ĠWeapon Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" w ." Ġ+ ĠS . COLUMN _ WE AP ONS _ W TYPE Ġ+ Ġ" Ġ= Ġ? Ġ" ĊĠĠĠĠĠĠĠ Ġif Ġ( final Only ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq h . Selection Ġ+= Ġ" AND Ġw ." Ġ+ ĠS . COLUMN _ WE AP ONS _ FINAL Ġ+ Ġ" Ġ= Ġ 1 Ġ" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( type ) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Cursor ( wrap Join Helper ( builder Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠThis Ġis Ġa Ġlittle Ġbit Ġof Ġa Ġhack Ġthat Ġrelies Ġon ĊĠĠĠ Ġ// Ġknowing Ġhow Ġthe Ġweapon Ġids Ġare Ġused . ĊĠĠĠ Ġfun Ġquery Weapon Family ( id : ĠLong ): ĠWeapon Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ""" ( w .${ S . COLUMN _ ITEMS _ ID } Ġ& Ġ 1 6 7 7 6 9 6 0 ) Ġ= Ġ(? Ġ& Ġ 1 6 7 7 6 9 6 0 ) """ ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Cursor ( wrap Join Helper ( builder Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġweapon ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Weapon (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġw ._ id ĠAS Ġ_ id , Ġw . w type , Ġw . creation _ cost , Ġw . upgrade _ cost , Ġw . attack , Ġw . max _ attack , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ w . element al _ attack , Ġw . aw aken ed _ element al _ attack , Ġw . defense , Ġw . sharp ness , Ġw . affinity , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ w . h orn _ notes , Ġw . shell ing _ type , Ġw . charge _ levels , Ġw . allowed _ co ating s , Ġw . re co il , Ġw . reload _ speed , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ w . rapid _ fire , Ġw . normal _ shots , Ġw . status _ shots , Ġw . element al _ shots , Ġw . tool _ shots , Ġw . num _ slots , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ w . sharp ness _ file , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ i . name , Ġi . j pn _ name , Ġi . type , Ġi . r arity , Ġi . carry _ capacity , Ġi . buy , Ġi . sell , Ġi . description , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ i . icon _ name , Ġi . armor _ du pe _ name _ fix , Ġw . special _ am mo ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġwe apons ĠAS Ġw ĠLEFT ĠOUT ER ĠJOIN ĉ items ĠAS Ġi ĠON Ġw ._ id Ġ= Ġi ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ" w " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ W TYPE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ W TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ CRE ATION _ CO ST ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ CRE ATION _ CO ST ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ UP GR ADE _ CO ST ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ UP GR ADE _ CO ST ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ ATT ACK ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ ATT ACK ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ MAX _ ATT ACK ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ MAX _ ATT ACK ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ ELEMENT ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ ELEMENT ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ AW AK EN ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ AW AK EN ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ ELEMENT _ 2 ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ ELEMENT _ 2 ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ AW AK EN _ ATT ACK ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ AW AK EN _ ATT ACK ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ ELEMENT _ ATT ACK ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ ELEMENT _ ATT ACK ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ ELEMENT _ 2 _ ATT ACK ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ ELEMENT _ 2 _ ATT ACK ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ DEF ENSE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ DEF ENSE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ SH ARP NESS ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ SH ARP NESS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ AFF INITY ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ AFF INITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ H OR N _ NOTES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ H OR N _ NOTES ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ SHELL ING _ TYPE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ SHELL ING _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ PH IAL ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ PH IAL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ CHAR GES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ CHAR GES ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ CO AT INGS ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ CO AT INGS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ RE CO IL ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ RE CO IL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ RE LOAD _ SPEED ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ RE LOAD _ SPEED ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ R AP ID _ FIRE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ R AP ID _ FIRE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ DEV I ATION ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ DEV I ATION ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ AM MO ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ AM MO ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ NUM _ SLOT S ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ NUM _ SLOT S ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ FINAL ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ FINAL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ TREE _ DEPTH ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ TREE _ DEPTH ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ PARENT _ ID ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ PARENT _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WE AP ONS _ SPECIAL _ AM MO ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WE AP ONS _ SPECIAL _ AM MO ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ i .$ column _ name ĠAS Ġ${ S . COLUMN _ ITEMS _ NAME }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ J PN _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ J PN _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ BU Y ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ BU Y ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SE LL ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SE LL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ DESCRIPTION ] Ġ= Ġ"$ i .$ column _ description ĠAS Ġ${ S . COLUMN _ ITEMS _ DESCRIPTION }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ WE AP ONS Ġ+ Ġ" ĠAS Ġw " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" w ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠWE AP ON ĠT REE ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġthe Ġparent Ġweapon Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Weapon Tree Parent ( id : ĠLong ): ĠWeapon Tree Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Tree Cursor ( writable Database . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġi ._ id ĠAS Ġ_ id , i . name ĠAS Ġname ĠFROM Ġcomponents Ġc ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINNER ĠJOIN Ġwe apons Ġw Ġon Ġw ._ id Ġ= Ġc . component _ item _ id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJOIN Ġitems Ġi ĠON Ġi ._ id Ġ= Ġw ._ id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġc . created _ item _ id =? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", array Of ( id . toString ()))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Weapon Family Branches ( id : ĠLong ): ĠWeapon Tree Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġroughly Ġequivalent Ġto Ġc . component Ġfamily Ġ= Ġfamily ĠAND Ġc . component Ġfamily Ġ!= Ġc . created Ġfamily ĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Tree Cursor ( writable Database . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġi ._ id ĠAS Ġ_ id , i . name ĠAS Ġname ĠFROM Ġcomponents Ġc ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJOIN Ġwe apons Ġw Ġon Ġw ._ id Ġ= Ġc . created _ item _ id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJOIN Ġitems Ġi ĠON Ġi ._ id Ġ= Ġw ._ id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġ( c . component _ item _ id Ġ& Ġ${ S . WE AP ON _ FAMILY _ MASK }) = Ġ(? Ġ& Ġ${ S . WE AP ON _ FAMILY _ MASK }) ĠAND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( c . component _ item _ id Ġ& Ġ${ S . WE AP ON _ FAMILY _ MASK }) Ġ!= Ġ( c . created _ item _ id Ġ& Ġ${ S . WE AP ON _ FAMILY _ MASK }) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", array Of ( id . toString ()))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Weapon Tree Final ( id : ĠLong ): ĠWeapon ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfinal Id Ġ= Ġwritable Database . raw Query (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ_ id ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġwe apons Ġw ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġw . final Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAND Ġw . family Ġ= Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġfamily ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġwe apons ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġ_ id Ġ= Ġ? ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", ĠarrayOf ( id . toString ())). first OrNull Ġ{ Ġit . getLong ("_ id ") Ġ} Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġquery Weapon ( final Id ). first OrNull Ġ{ Ġit . weapon Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġchild Ġweapon ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Weapon Tree Child ( id : ĠLong ): ĠWeapon Tree Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠWeapon Tree Cursor ( wrap Join Helper ( builder Weapon Tree Child (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġweapon Ġtree Ġparent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Weapon Tree Parent (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġi 2 ._ id , Ġi 2 . name ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġitems ĠAS Ġi 1 ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġcomponents ĠAS Ġc ĠON Ġi 1 ._ id Ġ= Ġc . created _ item _ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ JOIN Ġwe apons ĠAS Ġw 2 ĠON Ġw 2 ._ id Ġ= Ġc . component _ item _ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi 2 ĠON Ġi 2 ._ id Ġ= Ġw 2 ._ id ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ WHERE Ġi 1 ._ id Ġ= Ġ' id '; ĊĊĠĠĠĠĠĠĠ Ġval Ġi 1 Ġ= Ġ" i 1 " ĊĠĠĠĠĠĠĠ Ġval Ġi 2 Ġ= Ġ" i 2 " ĊĠĠĠĠĠĠĠ Ġval Ġw 2 Ġ= Ġ" w 2 " ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġ" c " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġi 2 Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġi 2 Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi 1 " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ COMPONENTS Ġ+ Ġ" ĠAS Ġc " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠON Ġ" Ġ+ Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠJOIN Ġ" Ġ+ ĠS . TABLE _ WE AP ONS Ġ+ Ġ" ĠAS Ġw 2 " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" w 2 ." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġi 2 " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" i 2 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" w 2 ." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġweapon Ġtree Ġchild ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Weapon Tree Child (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġi 2 ._ id , Ġi 2 . name ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġitems ĠAS Ġi 1 ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġcomponents ĠAS Ġc ĠON Ġi 1 ._ id Ġ= Ġc . component _ item _ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ JOIN Ġwe apons ĠAS Ġw 2 ĠON Ġw 2 ._ id Ġ= Ġc . created _ item _ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi 2 ĠON Ġi 2 ._ id Ġ= Ġw 2 ._ id ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ WHERE Ġi 1 ._ id Ġ= Ġ'_ id '; ĊĊĠĠĠĠĠĠĠ Ġval Ġi 1 Ġ= Ġ" i 1 " ĊĠĠĠĠĠĠĠ Ġval Ġi 2 Ġ= Ġ" i 2 " ĊĠĠĠĠĠĠĠ Ġval Ġw 2 Ġ= Ġ" w 2 " ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġ" c " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġi 2 Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġi 2 Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi 1 " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ COMPONENTS Ġ+ Ġ" ĠAS Ġc " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠON Ġ" Ġ+ Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ COMPONENT _ ITEM _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠJOIN Ġ" Ġ+ ĠS . TABLE _ WE AP ONS Ġ+ Ġ" ĠAS Ġw 2 " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" w 2 ." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" c ." Ġ+ ĠS . COLUMN _ COMPONENTS _ CREATED _ ITEM _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġi 2 " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" i 2 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" w 2 ." Ġ+ ĠS . COLUMN _ WE AP ONS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠPAL ICO ĠWE AP ON ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun Ġquery Pal ico We apons (): ĠPal ico Weapon Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ PAL ICO _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPal ico Weapon Cursor ( wrap Join Helper ( builder Pal ico Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Pal ico Weapon ( id : ĠLong ): ĠPal ico Weapon Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ PAL ICO _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" w ." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ID Ġ+ Ġ"= ?" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( java . lang . Long . toString ( id )) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠPal ico Weapon Cursor ( wrap Join Helper ( builder Pal ico Weapon (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuilder Pal ico Weapon (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ" w " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ CRE ATION _ CO ST ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ CRE ATION _ CO ST ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ ATT ACK _ ME LE E ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ATT ACK _ ME LE E ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ ATT ACK _ RAN GED ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ATT ACK _ RAN GED ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ ELEMENT ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ELEMENT ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ ELEMENT _ ME LE E ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ELEMENT _ ME LE E ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ ELEMENT _ RAN GED ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ELEMENT _ RAN GED ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ BL UNT ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ BL UNT ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ BAL ANCE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ BAL ANCE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ DEF ENSE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ DEF ENSE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ SH ARP NESS ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ SH ARP NESS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ AFF INITY _ ME LE E ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ AFF INITY _ ME LE E ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ WE AP ONS _ AFF INITY _ RAN GED ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ AFF INITY _ RAN GED ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ i .$ column _ name ĠAS Ġ${ S . COLUMN _ ITEMS _ NAME }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ DESCRIPTION ] Ġ= Ġ"$ i .$ column _ description ĠAS Ġ${ S . COLUMN _ ITEMS _ DESCRIPTION }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ PAL ICO _ WE AP ONS Ġ+ Ġ" ĠAS Ġw " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" w ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ PAL ICO _ WE AP ONS _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠPAL ICO ĠARM OR ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun Ġquery Pal ico Arm ors (): ĠPal ico Armor Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ PAL ICO _ ARM OR ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= ĠS . COLUMN _ PAL ICO _ ARM OR _ FAMILY Ġ+ Ġ"," Ġ+ S . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPal ico Armor Cursor ( wrap Join Helper ( builder Pal ico Armor (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Pal ico Armor ( id : ĠLong ): ĠPal ico Armor Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ PAL ICO _ WE AP ONS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" w ." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ ID Ġ+ Ġ"= ?" ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( java . lang . Long . toString ( id )) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠPal ico Armor Cursor ( wrap Join Helper ( builder Pal ico Armor (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuilder Pal ico Armor (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ" w " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ ARM OR _ DEF ENSE ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ DEF ENSE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ ARM OR _ DR AG ON _ RES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ DR AG ON _ RES ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ ARM OR _ FIRE _ RES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ FIRE _ RES ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ ARM OR _ ICE _ RES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ ICE _ RES ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ ARM OR _ TH UNDER _ RES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ TH UNDER _ RES ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ PAL ICO _ ARM OR _ WATER _ RES ] Ġ= Ġw Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ PAL ICO _ ARM OR _ WATER _ RES ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġ"$ i .$ column _ name ĠAS Ġ${ S . COLUMN _ ITEMS _ NAME }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ DESCRIPTION ] Ġ= Ġ"$ i .$ column _ description ĠAS Ġ${ S . COLUMN _ ITEMS _ DESCRIPTION }" ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ PAL ICO _ ARM OR Ġ+ Ġ" ĠAS Ġw " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" w ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ PAL ICO _ ARM OR _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠW ISH LIST ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġwish list Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish lists (): ĠW ish list Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġusing Ġa Ġspecific Ġdb Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish lists ( db : ĠSQLite Database ): ĠW ish list Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Cursor ( wrap Helper ( db , Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list ( id : ĠLong ): ĠW ish list Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= ĠS . COLUMN _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Cursor ( wrap Helper ( qh )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list , Ġand Ġreturns Ġthe Ġwish list 's Ġid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list ( name : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ NAME , Ġname ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( S . TABLE _ W ISH LIST , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġwith Ġall Ġinfo ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list All ( db : ĠSQLite Database , Ġid : ĠLong , Ġname : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ ID , Ġid ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ NAME , Ġname ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( db , ĠS . TABLE _ W ISH LIST , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Update Wish list ( id : ĠLong , Ġname : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Filter Ġ= ĠS . COLUMN _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ NAME , Ġname ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Record ( S . TABLE _ W ISH LIST , Ġstr Filter , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Delete Wish list ( id : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġwhere Ġ= ĠS . COLUMN _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġval Ġw 1 Ġ= Ġdelete Record ( S . TABLE _ W ISH LIST , Ġwhere , Ġargs ) ĊĊĠĠĠĠĠĠĠ Ġwhere Ġ= ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġw 2 Ġ= Ġdelete Record ( S . TABLE _ W ISH LIST _ DATA , Ġwhere , Ġargs ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġw 1 Ġ&& Ġw 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠW ISH LIST ĠDATA ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġwish list Ġdata Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish lists Data (): ĠW ish list Data Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST _ DATA ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Data () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Data Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġdata Ġusing Ġspecific Ġdb Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish lists Data ( db : ĠSQLite Database ): ĠW ish list Data Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST _ DATA ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Data () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Data Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġdata Ġfor Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list Data ( id : ĠLong ): ĠW ish list Data Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwd Columns : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Selection Ġ= Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġwd Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġwd GroupBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Having : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd OrderBy Ġ= Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID Ġ+ Ġ" ĠASC " ĊĠĠĠĠĠĠĠ Ġval Ġwd Limit : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Data () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġwd Columns , Ġwd Selection , Ġwd Selection Args , Ġwd GroupBy , Ġwd Having , Ġwd OrderBy , Ġwd Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Data Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġdata Ġfor Ġa Ġspecific Ġwish list Ġdata Ġid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list Data Id ( id : ĠLong ): ĠW ish list Data Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwd Columns : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Selection Ġ= Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġwd Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġwd GroupBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Having : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd OrderBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Limit : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Data () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġwd Columns , Ġwd Selection , Ġwd Selection Args , Ġwd GroupBy , Ġwd Having , Ġwd OrderBy , Ġwd Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Data Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġdata Ġfor Ġa Ġspecific Ġwish list Ġand Ġitem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list Data ( wd _ id : ĠLong , Ġitem _ id : ĠLong , Ġpath : ĠString ): ĠW ish list Data Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwd Columns : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Selection Ġ= Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAND Ġ" Ġ+ Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ? " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAND Ġ" Ġ+ Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ PATH Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġwd Selection Args Ġ= ĠarrayOf ( wd _ id . toString (), Ġitem _ id . toString (), Ġpath ) ĊĠĠĠĠĠĠĠ Ġval Ġwd GroupBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Having : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd OrderBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwd Limit : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Data () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġwd Columns , Ġwd Selection , Ġwd Selection Args , Ġwd GroupBy , Ġwd Having , Ġwd OrderBy , Ġwd Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Data Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġdata Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list Data ( wishlist _ id : ĠLong , Ġitem _ id : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity : ĠInt , Ġpath : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID , Ġwish list _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID , Ġitem _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY , Ġquantity ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ PATH , Ġpath ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( S . TABLE _ W ISH LIST _ DATA , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġdata Ġto Ġa Ġspecific Ġwish list Ġfor Ġcopying ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list Data All ( wishlist _ id : ĠLong , Ġitem _ id : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity : ĠInt , Ġsatisfied : ĠInt , Ġpath : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID , Ġwish list _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID , Ġitem _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY , Ġquantity ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED , Ġsatisfied ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ PATH , Ġpath ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( S . TABLE _ W ISH LIST _ DATA , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġdata Ġto Ġa Ġspecific Ġwish list Ġfor Ġcopying ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list Data All ( db : ĠSQLite Database , Ġwish list _ id : ĠLong , Ġitem _ id : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity : ĠInt , Ġsatisfied : ĠInt , Ġpath : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID , Ġwish list _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID , Ġitem _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY , Ġquantity ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED , Ġsatisfied ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ PATH , Ġpath ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( db , ĠS . TABLE _ W ISH LIST _ DATA , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠUpdate Ġa Ġwish list Ġdata Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Update Wish list Data Quantity ( id : ĠLong , Ġquantity : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Filter Ġ= ĠS . COLUMN _ W ISH LIST _ DATA _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY , Ġquantity ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Record ( S . TABLE _ W ISH LIST _ DATA , Ġstr Filter , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġa Ġwish list Ġitem 's Ġsatisfied Ġstatus ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Update Wish list Data Satisf ied ( id : ĠLong , Ġsatisfied : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Filter Ġ= ĠS . COLUMN _ W ISH LIST _ DATA _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED , Ġsatisfied ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Record ( S . TABLE _ W ISH LIST _ DATA , Ġstr Filter , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Delete Wish list Data ( id : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwhere Ġ= ĠS . COLUMN _ W ISH LIST _ DATA _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdelete Record ( S . TABLE _ W ISH LIST _ DATA , Ġwhere , Ġargs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġwish list Data ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Wish list Data (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġwd ._ id ĠAS Ġ_ id , Ġwd . wishlist _ id , Ġwd . item _ id , Ġwd . quantity , Ġwd . satisfied , Ġwd . path ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ i . name , Ġi . j pn _ name , Ġi . type , Ġi . r arity , Ġi . carry _ capacity , Ġi . buy , Ġi . sell , Ġi . description , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ i . icon _ name , Ġi . armor _ du pe _ name _ fix ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġwish list _ data ĠAS Ġwd ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġwish list ĠAS Ġw ĠON Ġwd . wishlist _ id Ġ= Ġw ._ id ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN ĉ items ĠAS Ġi ĠON Ġwd . item _ id Ġ= Ġi ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġwd Ġ= Ġ" wd " ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ" w " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġwd Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID ] Ġ= Ġwd Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID ] Ġ= Ġwd Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY ] Ġ= Ġwd Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ QU ANT ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED ] Ġ= Ġwd Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ SAT IS FIED ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ DATA _ PATH ] Ġ= Ġwd Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ PATH ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġ// projection Map . put ( S . COLUMN _ ITEMS _ J PN _ NAME , Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ J PN _ NAME ); ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ BU Y ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ BU Y ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SE LL ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SE LL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ DESCRIPTION ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ DESCRIPTION ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ W ISH LIST _ DATA Ġ+ Ġ" ĠAS Ġwd " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ W ISH LIST Ġ+ Ġ" ĠAS Ġw " Ġ+ Ġ" ĠON Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" w ." Ġ+ ĠS . COLUMN _ W ISH LIST _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" wd ." Ġ+ ĠS . COLUMN _ W ISH LIST _ DATA _ ITEM _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ***** ĠW ISH LIST ĠCOMPONENT ĠQU ER IES Ġ********************************* ******** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġwish list Ġcomponents Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish lists Component (): ĠW ish list Component Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST _ COMPONENT ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Component () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Component Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġcomponents Ġusing Ġa Ġspecific Ġdb Ġinstance ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdb ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish lists Component ( db : ĠSQLite Database ): ĠW ish list Component Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Distinct Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W ISH LIST _ COMPONENT ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Component () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb , Ġq h . Columns , Ġq h . Selection , Ġq h . Selection Args , Ġq h . GroupBy , Ġq h . Having , Ġq h . OrderBy , Ġq h . Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Component Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġcomponents Ġfor Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list Components ( id : ĠLong ): ĠW ish list Component Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwc Columns : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Selection Ġ= Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġwc Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġwc GroupBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Having : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc OrderBy Ġ= Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID Ġ+ Ġ" ĠASC " ĊĠĠĠĠĠĠĠ Ġval Ġwc Limit : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Component () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġwc Columns , Ġwc Selection , Ġwc Selection Args , Ġwc GroupBy , Ġwc Having , Ġwc OrderBy , Ġwc Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Component Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġdata Ġfor Ġa Ġspecific Ġwish list Ġand Ġitem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list Component ( wc _ id : ĠLong , Ġitem _ id : ĠLong ): ĠW ish list Component Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwc Columns : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Selection Ġ= Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ? " Ġ+ Ġ" ĠAND Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġwc Selection Args Ġ= ĠarrayOf ( wc _ id . toString (), Ġitem _ id . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġwc GroupBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Having : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc OrderBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Limit : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Component () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġwc Columns , Ġwc Selection , Ġwc Selection Args , Ġwc GroupBy , Ġwc Having , Ġwc OrderBy , Ġwc Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Component Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠGet Ġall Ġwish list Ġcomponents Ġfor Ġa Ġspecific Ġid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Wish list Component Id ( id : ĠLong ): ĠW ish list Component Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġwc Columns : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Selection Ġ= Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġwc Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġwc GroupBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Having : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc OrderBy : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġwc Limit : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠMult ith read Ġissues Ġworkaround ĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= Ġbuilder Wish list Component () ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġq b . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwritable Database , Ġwc Columns , Ġwc Selection , Ġwc Selection Args , Ġwc GroupBy , Ġwc Having , Ġwc OrderBy , Ġwc Limit ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ish list Component Cursor ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġcomponent Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list Component ( wishlist _ id : ĠLong , Ġcomponent _ id : ĠLong , Ġquantity : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID , Ġwish list _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID , Ġcomponent _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY , Ġquantity ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( S . TABLE _ W ISH LIST _ COMPONENT , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġcomponent Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list Component All ( wishlist _ id : ĠLong , Ġcomponent _ id : ĠLong , Ġquantity : ĠInt , Ġnotes : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID , Ġwish list _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID , Ġcomponent _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY , Ġquantity ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ NOTES , Ġnotes ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( S . TABLE _ W ISH LIST _ COMPONENT , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġwish list Ġcomponent Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add Wish list Component All ( db : ĠSQLite Database , Ġwish list _ id : ĠLong , Ġcomponent _ id : ĠLong , Ġquantity : ĠInt , Ġnotes : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID , Ġwish list _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID , Ġcomponent _ id ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY , Ġquantity ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ NOTES , Ġnotes ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( db , ĠS . TABLE _ W ISH LIST _ COMPONENT , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠUpdate Ġa Ġwish list Ġcomponent Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Update Wish list Component Quantity ( id : ĠLong , Ġquantity : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Filter Ġ= ĠS . COLUMN _ W ISH LIST _ COMPONENT _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY , Ġquantity ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Record ( S . TABLE _ W ISH LIST _ COMPONENT , Ġstr Filter , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Delete Wish list Component ( id : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwhere Ġ= ĠS . COLUMN _ W ISH LIST _ COMPONENT _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠarrayOf ("" Ġ+ Ġid ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdelete Record ( S . TABLE _ W ISH LIST _ COMPONENT , Ġwhere , Ġargs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠUpdate Ġa Ġwish list Ġcomponent Ġto Ġa Ġspecific Ġwish list ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Update Wish list Component Notes ( id : ĠLong , Ġnotes : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Filter Ġ= ĠS . COLUMN _ W ISH LIST _ COMPONENT _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġid ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ W ISH LIST _ COMPONENT _ NOTES , Ġnotes ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Record ( S . TABLE _ W ISH LIST _ COMPONENT , Ġstr Filter , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġcomponents Ġfor Ġwish list Data ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder Wish list Component (): ĠSQLite QueryBuilder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ SELECT Ġwc ._ id ĠAS Ġ_ id , Ġwc . wishlist _ id , Ġwc . component _ id , Ġwc . quantity , Ġwc . notes ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ i . name , Ġi . j pn _ name , Ġi . type , Ġi . sub _ type , Ġi . r arity , Ġi . carry _ capacity , Ġi . buy , Ġi . sell , Ġi . description , ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ i . icon _ name , Ġi . armor _ du pe _ name _ fix ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ FROM Ġwish list _ component ĠAS Ġwc ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN Ġwish list ĠAS Ġw ĠON Ġwd . wishlist _ id Ġ= Ġw ._ ic ĊĠĠĠĠĠĠĠ Ġ// ĉ ĉ LEFT ĠOUT ER ĠJOIN ĉ items ĠAS Ġi ĠON Ġwc . component _ id Ġ= Ġi ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġwc Ġ= Ġ" wc " ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ" w " ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ" i " ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġwc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID ] Ġ= Ġwc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID ] Ġ= Ġwc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY ] Ġ= Ġwc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ QU ANT ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ W ISH LIST _ COMPONENT _ NOTES ] Ġ= Ġwc Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ NOTES ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ NAME ĊĠĠĠĠĠĠĠ Ġ// projection Map . put ( S . COLUMN _ ITEMS _ J PN _ NAME , Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ J PN _ NAME ); ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SUB _ TYPE ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SUB _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ R AR ITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ R AR ITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ C ARR Y _ CAP ACITY ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ BU Y ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ BU Y ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ SE LL ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ SE LL ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ DESCRIPTION ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ DESCRIPTION ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ NAME ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ICON _ COLOR ] Ġ= Ġi Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ COLOR ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ W ISH LIST _ COMPONENT Ġ+ Ġ" ĠAS Ġwc " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ W ISH LIST Ġ+ Ġ" ĠAS Ġw " Ġ+ Ġ" ĠON Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ W ISH LIST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" w ." Ġ+ ĠS . COLUMN _ W ISH LIST _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" wc ." Ġ+ ĠS . COLUMN _ W ISH LIST _ COMPONENT _ COMPONENT _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" i ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ************************* ** ĠW YP OR IUM ĠTR ADE ĠQU ER IES Ġ********************************* ****** ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġall Ġtr ades Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery W yp or ium Trades (): ĠW yp or ium Trade Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W YP OR IUM _ TRA DE ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW yp or ium Trade Cursor ( wrap Join Helper ( builder W yp or ium Trade (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċĉ Ġ* ĠGet Ġa Ġspecific Ġw yp or ium Ġtrade Ċĉ Ġ*/ ĊĠĠĠ Ġfun Ġquery W yp or ium Trades ( id : ĠLong ): ĠW yp or ium Trade Cursor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ W YP OR IUM _ TRA DE ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" wt . item _ in _ id Ġ= Ġ? ĠOR Ġwt . item _ out _ id Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString (), Ġid . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW yp or ium Trade Cursor ( wrap Join Helper ( builder W yp or ium Trade (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġquery Ġfor Ġw yp or ium Ġtr ades ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder W yp or ium Trade (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ ĠSELECT Ġwt ._ id ĠAS Ġtrade _ id , Ġwt . item _ in _ id ĠAS Ġin _ id , Ġwt . item _ out _ id ĠAS Ġout _ id , Ġwt . unlock _ quest _ id ĠAS Ġq _ id , ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ Ġi 1 . name ĠAS Ġin _ name , Ġi 1 . icon _ name ĠAS Ġin _ icon _ name , Ġi 2 . name ĠAS Ġout _ name , Ġi 2 . icon _ name ĠAS Ġout _ icon _ name , ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ Ġq . name ĠAS Ġq _ name ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ ĠFROM Ġw yp or ium ĠAS Ġwt ĠLEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi 1 ĠON Ġwt . item _ in _ id Ġ= Ġi 1 ._ id ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ ĠLEFT ĠOUT ER ĠJOIN Ġitems ĠAS Ġi 2 ĠON Ġwt . item _ out _ id Ġ= Ġi 2 ._ id ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠ ĠLEFT ĠOUT ER ĠJOIN Ġquest s ĠAS Ġq ĠON Ġwt . unlock _ quest _ id Ġ= Ġq ._ id ; ĊĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġprojection Map [" trade _ id "] Ġ= Ġ" wt ." Ġ+ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" trade _ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" in _ id "] Ġ= Ġ" wt ." Ġ+ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ ITEM _ IN _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" in _ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" out _ id "] Ġ= Ġ" wt ." Ġ+ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ ITEM _ OUT _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" out _ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [" q _ id "] Ġ= Ġ" wt ." Ġ+ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ UNLOCK _ QUEST _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" q _ id " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ID ] Ġ= Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [" in _ name "] Ġ= Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" in _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [" in _ icon _ name "] Ġ= Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" in _ icon _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ ITEMS _ ID ] Ġ= Ġ" i 2 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [" out _ name "] Ġ= Ġ" i 2 ." Ġ+ ĠS . COLUMN _ ITEMS _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" out _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [" out _ icon _ name "] Ġ= Ġ" i 2 ." Ġ+ ĠS . COLUMN _ ITEMS _ ICON _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" out _ icon _ name " ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ QUEST S _ ID ] Ġ= Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [" q _ name "] Ġ= Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ NAME Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ" q _ name " ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġnew Ġquery builder ĊĠĠĠĠĠĠĠ Ġval ĠQ B Ġ= ĠSQLite QueryBuilder () ĊĊĠĠĠĠĠĠĠ ĠQ B . tables Ġ= ĠS . TABLE _ W YP OR IUM _ TRA DE Ġ+ Ġ" ĠAS Ġwt " Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ Ġ" ĠAS Ġi 1 " Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" wt ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ ITEM _ IN _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i 1 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ ITEMS Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠAS Ġi 2 Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" wt ." Ġ+ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ ITEM _ OUT _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġ" i 2 ." Ġ+ ĠS . COLUMN _ ITEMS _ ID Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠLEFT ĠOUT ER ĠJOIN Ġ" Ġ+ ĠS . TABLE _ QUEST S Ġ+ Ġ" ĠAS Ġq Ġ" Ġ+ Ġ" ĠON Ġ" Ġ+ Ġ" wt ." Ġ+ ĠS . COLUMN _ W YP OR IUM _ TRA DE _ UNLOCK _ QUEST _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" q ." Ġ+ ĠS . COLUMN _ QUEST S _ ID ĊĊĠĠĠĠĠĠĠ ĠQ B . set Projection Map ( projection Map ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/ ******************************** * ĠARM OR ĠSET ĠBU IL DER ĠQU ER IES Ġ Ġ*/ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġarm or Ġsets . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery AS B Sets (): ĠAS B Set Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ AS B _ SETS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAS B Set Cursor ( wrap Join Helper ( builder AS B Set (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieves Ġa Ġspecific ĠArm or ĠSet ĠBuilder Ġset Ġin Ġthe Ġdatabase . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery AS B Set ( id : ĠLong ): ĠAS B Set Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ AS B _ SETS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" ar ." Ġ+ ĠS . COLUMN _ AS B _ SET _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAS B Set Cursor ( wrap Join Helper ( builder AS B Set (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġarm or Ġsets . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery AS BS essions (): ĠAS B Session Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ AS B _ SETS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAS B Session Cursor ( wrap Join Helper ( builder AS B Session (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġarm or Ġsets . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery AS BS essions ( db : ĠSQLite Database ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb . raw Query (" SELECT Ġ* ĠFROM Ġ" Ġ+ ĠS . TABLE _ AS B _ SETS , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetrieves Ġa Ġspecific ĠArm or ĠSet ĠBuilder Ġset Ġin Ġthe Ġdatabase . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery AS B Session ( id : ĠLong ): ĠAS B Session Cursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġq h Ġ= ĠQuery Helper () ĊĠĠĠĠĠĠĠ Ġq h . Columns Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Table Ġ= ĠS . TABLE _ AS B _ SETS ĊĠĠĠĠĠĠĠ Ġq h . Selection Ġ= Ġ" ar ." Ġ+ ĠS . COLUMN _ AS B _ SET _ ID Ġ+ Ġ" Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġq h . Selection Args Ġ= ĠarrayOf ( id . toString ()) ĊĠĠĠĠĠĠĠ Ġq h . GroupBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Having Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . OrderBy Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġq h . Limit Ġ= Ġ" 1 " ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAS B Session Cursor ( wrap Join Helper ( builder AS B Session (), Ġq h )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew ĠArm or ĠSet ĠBuilder Ġset Ġin Ġthe Ġentries Ġof Ġthe Ġdatabase . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġquery Add AS B Set ( name : ĠString , Ġrank : ĠRank , Ġh unter Type : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ SET _ NAME , Ġname ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ SET _ RAN K , Ġrank . value ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ SET _ H UN TER _ TYPE , Ġh unter Type ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ T AL IS MAN _ EXISTS , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ WE AP ON _ SLOT S , Ġ 3 ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Record ( S . TABLE _ AS B _ SETS , Ġvalues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Update AS B Set ( as b SetId : ĠLong , Ġname : ĠString , Ġrank : ĠRank , Ġh unter Type : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠS . COLUMN _ AS B _ SET _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ Ġas b SetId ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ SET _ NAME , Ġname ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ SET _ RAN K , Ġrank . value ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( S . COLUMN _ AS B _ SET _ H UN TER _ TYPE , Ġh unter Type ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Record ( S . TABLE _ AS B _ SETS , Ġfilter , Ġvalues ). to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery Delete AS B Set ( setId : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠS . COLUMN _ AS B _ SET _ ID Ġ+ Ġ" Ġ= Ġ" Ġ+ ĠsetId ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdelete Record ( S . TABLE _ AS B _ SETS , Ġfilter , Ġempty Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġan ĠSQL Ġquery Ġthat Ġgives Ġus Ġall Ġinformation Ġabout Ġthe Ġ` AS B Set ` Ġin Ġquestion . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder AS B Set (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= Ġ" ar " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ SET _ NAME ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ SET _ RAN K ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ RAN K ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ SET _ H UN TER _ TYPE ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ H UN TER _ TYPE ĊĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= ĠSQLite QueryBuilder () ĊĠĠĠĠĠĠĠ Ġq b . tables Ġ= ĠS . TABLE _ AS B _ SETS Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġset ĊĠĠĠĠĠĠĠ Ġq b . set Projection Map ( projection Map ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġq b ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġan ĠSQL Ġquery Ġthat Ġgives Ġus Ġall Ġinformation Ġabout Ġthe Ġ` AS B Session ` Ġin Ġquestion . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġbuilder AS B Session (): ĠSQLite QueryBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprojection Map Ġ= ĠHashMap < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= Ġ" ar " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [" _ id "] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ ID Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġ"_ id " ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ SET _ NAME ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ NAME ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ SET _ RAN K ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ RAN K ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ SET _ H UN TER _ TYPE ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ SET _ H UN TER _ TYPE ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ WE AP ON _ SLOT S ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ WE AP ON _ SLOT S ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AS B _ WE AP ON _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HEAD _ ARM OR _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HEAD _ ARM OR _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HEAD _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HEAD _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HEAD _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HEAD _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ HEAD _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ HEAD _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ BODY _ ARM OR _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ BODY _ ARM OR _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ BODY _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ BODY _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ BODY _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ BODY _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ BODY _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ BODY _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AR MS _ ARM OR _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AR MS _ ARM OR _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AR MS _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AR MS _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AR MS _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AR MS _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ AR MS _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ AR MS _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WA IST _ ARM OR _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WA IST _ ARM OR _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WA IST _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WA IST _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WA IST _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WA IST _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ WA IST _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ WA IST _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ LE GS _ ARM OR _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LE GS _ ARM OR _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ LE GS _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LE GS _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ LE GS _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LE GS _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ LE GS _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ LE GS _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ EXISTS ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ EXISTS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ TYPE ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ TYPE ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ SLOT S ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ SLOT S ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ POINTS ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 1 _ POINTS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ POINTS ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ SK ILL _ 2 _ POINTS ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ DE COR ATION _ 1 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 1 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ DE COR ATION _ 2 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 2 _ ID ĊĠĠĠĠĠĠĠ Ġprojection Map [ S . COLUMN _ T AL IS MAN _ DE COR ATION _ 3 _ ID ] Ġ= Ġset Ġ+ Ġ"." Ġ+ ĠS . COLUMN _ T AL IS MAN _ DE COR ATION _ 3 _ ID ĊĊĠĠĠĠĠĠĠ Ġval Ġq b Ġ= ĠSQLite QueryBuilder () ĊĠĠĠĠĠĠĠ Ġq b . tables Ġ= ĠS . TABLE _ AS B _ SETS Ġ+ Ġ" ĠAS Ġ" Ġ+ Ġset ĊĠĠĠĠĠĠĠ Ġq b . set Projection Map ( projection Map ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġq b ĊĠĠĠ Ġ} Ċ } Ċ