package Ġio . github . graph glue . graphql . query Ċ Ċ import Ġcom . exp edi ag roup . graphql . generator . annotations . Graph Q LI gnore Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġgraphql . execution . Data Fetcher Result Ċ import Ġgraphql . schema . Data Fetching Environment Ċ import Ġio . github . graph glue . data . Lazy Loading Context Ċ import Ġio . github . graph glue . data . execution . Node Query Executor Ċ import Ġio . github . graph glue . data . execution . Node QueryParser Ċ import Ġio . github . graph glue . data . execution . Node QueryResult Ċ import Ġio . github . graph glue . definition . Node Definition Ċ import Ġio . github . graph glue . graphql . extensions . required Permission Ċ import Ġio . github . graph glue . connection . model . Connection Ċ import Ġio . github . graph glue . model . Node Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . neo 4 j . core . Reactive Neo 4 j Client Ċ import Ġorg . springframework . data . neo 4 j . core . mapping . Neo 4 j Mapping Context Ċ Ċ /** Ċ Ġ* ĠProvider Ġfor Ġtop Ġlevel Ġqueries Ġfor Ġspecific Ġ[ Node ] Ġtypes Ċ Ġ* ĠUsed Ġto Ġgenerate Ġconnection Ġlike Ġtop Ġlevel Ġqueries Ċ Ġ* Ċ Ġ* Ġ@ param ĠT Ġthe Ġtype Ġof Ġnode Ġfor Ġwhich Ġto Ġcreate Ġthe Ġquery Ċ Ġ* Ġ@ param Ġnode Definition Ġthe Ġdefinition Ġof Ġthe Ġ[ Node ] Ġtype Ġto Ġquery Ġfor Ċ Ġ*/ Ċ class ĠTop Level Query Provider < T Ġ: ĠNode >( private Ġval Ġnode Definition : ĠNode Definition ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandles Ġthe Ġquery Ġfor Ġthe Ġspecific Ġ[ Node ] Ġtype ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnode QueryParser Ġused Ġto Ġparse Ġthe Ġquery ĊĠĠĠĠ Ġ* Ġ@ param Ġdata Fetching Environment Ġnecessary Ġto Ġgenerate Ġthe Ġnode Ġquery , Ġused Ġfor Ġcaching ĊĠĠĠĠ Ġ* Ġ@ param Ġlazy Loading Context Ġused Ġto Ġget Ġthe Ġ[ Reactive Neo 4 j Client ] Ġand Ġthe Ġ[ Neo 4 j Mapping Context ] ĊĠĠĠĠ Ġ* Ġ@ param ĠobjectMapper Ġnecessary Ġfor Ġcursor Ġencoding Ġand Ġdecoding ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġresult Ġwith Ġthe Ġcorrect Ġlocal Ġcontext ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġsuspend Ġfun Ġget From GraphQL ( ĊĠĠĠĠĠĠĠ Ġ@ Autowired Ġ@ Graph Q LI gnore ĊĠĠĠĠĠĠĠ Ġnode QueryParser : ĠNode QueryParser , ĊĠĠĠĠĠĠĠ Ġdata Fetching Environment : ĠData Fetching Environment , ĊĠĠĠĠĠĠĠ Ġ@ Autowired Ġ@ Graph Q LI gnore ĊĠĠĠĠĠĠĠ Ġlazy Loading Context : ĠLazy Loading Context , ĊĠĠĠĠĠĠĠ Ġ@ Autowired Ġ@ Graph Q LI gnore ĊĠĠĠĠĠĠĠ ĠobjectMapper : ĠObjectMapper ĊĠĠĠ Ġ): ĠData Fetcher Result < Connection < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Query Ġ= Ġnode QueryParser . generate Many Node Query ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Definition , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Fetching Environment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Fetching Environment . required Permission ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Executor Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode Query Executor ( node Query , Ġlazy Loading Context . neo 4 j Client , Ġlazy Loading Context . neo 4 j Mapping Context ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Result Ġ= Ġquery Executor . execute () Ġas ĠNode QueryResult < T > ĊĠĠĠĠĠĠĠ Ġreturn ĠData Fetcher Result . new Result < Connection < T >>() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data ( Connection . from QueryResult ( query Result , ĠobjectMapper )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. local Context ( node Query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ }