package Ġorg . kom apper . core . dsl . query Ċ Ċ import Ġorg . kom apper . core . dsl . context . Select Context Ċ import Ġorg . kom apper . core . dsl . met amodel . Entity Met amodel Ċ import Ġorg . kom apper . core . dsl . options . Select Options Ċ import Ġorg . kom apper . core . dsl . visitor . Query Visitor Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġquery Ġto Ġretrieve Ġmultiple Ġentity Ġsets . Ċ Ġ* ĠThis Ġquery Ġreturns Ġthe Ġstore Ġthat Ġholds Ġentity Ġsets . Ċ Ġ*/ Ċ interface ĠEntity Store Query Ġ: ĠQuery < Entity Store > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġa Ġquery Ġwith Ġthe Ġoptions Ġapplied . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconfigure Ġthe Ġconfigure Ġfunction Ġto Ġapply Ġoptions ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġquery ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġoptions ( configure : Ġ( Select Options ) Ġ-> ĠSelect Options ): ĠEntity Store Query Ċ } Ċ Ċ internal Ġdata Ġclass ĠEntity Store Query Impl < ENTITY Ġ: ĠAny , ĠID Ġ: ĠAny , ĠMETA Ġ: ĠEntity Met amodel < ENTITY , ĠID , ĠMETA >>( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠSelect Context < ENTITY , ĠID , ĠMETA >, Ċ ) Ġ: ĠEntity Store Query Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsupport : ĠSelect Query Support < ENTITY , ĠID , ĠMETA > Ġ= ĠSelect Query Support ( context ) ĊĊĠĠĠ Ġfun Ġinclude ( var arg Ġmet amodel s : ĠEntity Met amodel < *, Ġ*, Ġ* >): ĠEntity Store Query Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Context Ġ= Ġsupport . include ( met amodel s . toList ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( context Ġ= Ġnew Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinclude All (): ĠEntity Store Query Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Context Ġ= Ġsupport . include All () ĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( context Ġ= Ġnew Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġoptions ( configure : Ġ( Select Options ) Ġ-> ĠSelect Options ): ĠEntity Store Query Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Context Ġ= Ġsupport . options ( configure ( context . options )) ĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( context Ġ= Ġnew Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< VISIT _ RESULT > Ġaccept ( visitor : ĠQuery Visitor < VISIT _ RESULT >): ĠVIS IT _ RESULT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvisitor . entity Store Query ( context ) ĊĠĠĠ Ġ} Ċ } Ċ