package Ġde . p 7 s 1 . qa . se ven fac ette . g ql Ċ Ċ /** Ċ Ġ* ĠTODO : ĠAdd ĠDescription Ċ Ġ* Ċ Ġ* Ġ@ author ĠPat rick ĠD Ã¶ ring Ċ Ġ*/ Ċ @ Experimental Js Export Ċ @ Js Name (" Graph ql Request ") Ċ @ Js Export Ċ abstract Ġclass ĠGraph ql Request Ġconstructor ( private Ġvar Ġoperation Name : ĠString ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġfields : ĠMutable List < Field > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġinline Fragment Fields : ĠMutable List < Inline Fragment > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġargument : ĠArgument ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġadd Argument ( key : ĠString ?, Ġ` val `: ĠAny ?): ĠGraph ql Request Ġ{ ĊĠĠĠĠĠĠĠ Ġget Argument () !!. add Argument ( key , Ġ` val `) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Arguments ( arguments : ĠMap < String , ĠAny >): ĠGraph ql Request Ġ{ ĊĠĠĠĠĠĠĠ Ġarguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( key , Ġarg Value ) Ġ-> Ġget Argument () !!. add Argument ( key , Ġarg Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Argument (): ĠArgument ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . argument Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . argument Ġ= ĠArgument . build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . argument ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Inline Fragment ( inline Field : ĠString ): ĠGraph ql Request Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( inline Field . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinline Fragment Fields . add ( Inline Fragment ( inline Field )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Field ( field : ĠString ) Ġ: ĠGraph ql Request Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( field . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfields . add ( Field ( field )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgql Ġ= Ġoperation Name ĊĠĠĠĠĠĠĠ Ġgql Ġ= Ġgql . plus ( get Argument (). toString ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( fields . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgql Ġ= Ġadd Field Attr ( g ql ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( inline Fragment Fields . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgql Ġ= Ġadd Inline Attr ( g ql ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġgql ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Inline Attr (_ g ql : ĠString ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgql Ġ= Ġ_ g ql ĊĠĠĠĠĠĠĠ Ġinline Fragment Fields . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgql Ġ= Ġgql . plus ( it . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġgql ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Field Attr (_ g ql : ĠString ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgql Ġ= Ġ_ g ql ĊĠĠĠĠĠĠĠ Ġvar Ġresult Attr Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġfirst Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( first ) Ġfirst Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Attr Ġ= Ġresult Attr . plus (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Attr Ġ= Ġresult Attr . plus ( it . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( result Attr Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgql Ġ= Ġgql . plus ("{ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgql Ġ= Ġgql . plus ( result Attr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgql Ġ= Ġgql . plus (" }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġgql ĊĠĠĠ Ġ} Ċ } Ċ