package Ġgraphql . n adel . tests . hooks Ċ Ċ import Ġgraphql . n adel . Service Ċ import Ġgraphql . n adel . Service Execution H yd ration Details Ċ import Ġgraphql . n adel . Service Execution Result Ċ import Ġgraphql . n adel . engine . N adel ExecutionContext Ċ import Ġgraphql . n adel . engine . blueprint . N adel Overall Execution Blueprint Ċ import Ġgraphql . n adel . engine . transform . N adel Transform Ċ import Ġgraphql . n adel . engine . transform . N adel Transform Field Result Ċ import Ġgraphql . n adel . engine . transform . query . N adel Query Transformer Ċ import Ġgraphql . n adel . engine . transform . result . N adel Result Instruction Ċ import Ġgraphql . n adel . engine . transform . result . json . JsonNode Extractor Ċ import Ġgraphql . n adel . engine . transform . result . json . Json Nodes Ċ import Ġgraphql . n adel . engine . util . query Path Ċ import Ġgraphql . n adel . tests . Engine Test Hook Ċ import Ġgraphql . n adel . tests . Use Hook Ċ import Ġgraphql . normalized . Executable Normalized Field Ċ Ċ @ Use Hook Ċ class Ġ` transforms - can - copy - array - value ` Ġ: ĠEngine Test Hook Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcustom Transforms : ĠList < N adel Transform < out ĠAny >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠN adel Transform < Any > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġis Applicable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Context : ĠN adel ExecutionContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Blueprint : ĠN adel Overall Execution Blueprint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservices : ĠMap < String , ĠService >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice : ĠService , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverall Field : ĠExec utable Normalized Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh yd ration Details : ĠService Execution H yd ration Details ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoverall Field . name . take If Ġ{ Ġit Ġ== Ġ" ids " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġtransform Field ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Context : ĠN adel ExecutionContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer : ĠN adel Query Transformer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Blueprint : ĠN adel Overall Execution Blueprint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice : ĠService , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield : ĠExec utable Normalized Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠN adel Transform Field Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠN adel Transform Field Result . un modified ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Result Instructions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Context : ĠN adel ExecutionContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Blueprint : ĠN adel Overall Execution Blueprint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice : ĠService , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverall Field : ĠExec utable Normalized Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunderlying Parent Field : ĠExec utable Normalized Field ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult : ĠService Execution Result , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnodes : ĠJson Nodes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠList < N adel Result Instruction > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnodes Ġ= ĠJsonNode Extractor . get Nodes At ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġresult . data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Path Ġ= Ġunderlying Parent Field !!. query Path Ġ+ Ġoverall Field . result Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflatten Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnodes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġindex , Ġnode Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy From Index Ġ= Ġ( index Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take If Ġ{ Ġit Ġ>= Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġnodes . last Index ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN adel Result Instruction . Copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject Path Ġ= Ġnode . result Path . drop Last ( 1 ) Ġ+ Ġcopy From Index , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Path Ġ= Ġnode . result Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnsure Ġwe Ġare Ġoperating Ġan Ġarray Ġelements ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it . subject Path . segments . last (). value Ġis ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it . destination Path . segments . last (). value Ġis ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ