package Ġorg . neo 4 j . graphql Ċ Ċ import Ġgraphql . Scalars Ċ import Ġgraphql . language .* Ċ import Ġgraphql . schema .* Ċ import Ġorg . neo 4 j . cy ph erd sl . core . Node Ċ import Ġorg . neo 4 j . cy ph erd sl . core . Relationship Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . CY P HER Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . CY P HER _ STATE MENT Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . DYNAMIC Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . DYNAMIC _ PREFIX Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . PROPERTY Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . PROPERTY _ NAME Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ DIRECTION Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ DIRECTION _ BOTH Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ DIRECTION _ IN Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ DIRECTION _ OUT Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ FROM Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ NAME Ċ import Ġorg . neo 4 j . graphql . Directive Constants . Companion . REL ATION _ TO Ċ import Ġorg . neo 4 j . graphql . handler . projection . Projection Base Ċ Ċ fun ĠType < Type <* >> . name (): ĠString ? Ġ= Ġif Ġ( this . inner () Ġis ĠType Name ) Ġ( this . inner () Ġas ĠType Name ). name Ġelse Ġnull Ċ fun ĠType < Type <* >> . inner (): ĠType < Type <* >> Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠList Type Ġ-> Ġthis . type . inner () ĊĠĠĠ Ġis ĠNon Null Type Ġ-> Ġthis . type . inner () ĊĠĠĠ Ġelse Ġ-> Ġthis Ċ } Ċ Ċ fun ĠGraphQL Type . inner (): ĠGraphQL Type Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠGraphQL List Ġ-> Ġthis . wrapped Type . inner () ĊĠĠĠ Ġis ĠGraphQL NonNull Ġ-> Ġthis . wrapped Type . inner () ĊĠĠĠ Ġelse Ġ-> Ġthis Ċ } Ċ Ċ fun ĠGraphQL Type . name (): ĠString ? Ġ= Ġ( this Ġas ? ĠGraphQL Named Type )?. name Ċ fun ĠGraphQL Type . required Name (): ĠString Ġ= Ġrequire NotNull ( name ()) Ġ{ Ġ-> Ġ" name Ġis Ġrequired Ġbut Ġcannot Ġbe Ġdetermined Ġfor Ġ" Ġ+ Ġthis . java Class Ġ} Ċ Ċ fun ĠGraphQL Type . is List () Ġ= Ġthis Ġis ĠGraphQL List Ġ|| Ġ( this Ġis ĠGraphQL NonNull Ġ&& Ġthis . wrapped Type Ġis ĠGraphQL List ) Ċ fun ĠGraphQL Type . is Scalar () Ġ= Ġthis . inner (). let Ġ{ Ġit Ġis ĠGraphQL Scalar Type Ġ|| Ġit . inner Name (). startsWith ("_ Neo 4 j ") Ġ} Ċ fun ĠGraphQL Type . is Neo 4 j Type () Ġ= Ġthis . inner Name (). startsWith ("_ Neo 4 j ") Ċ fun ĠGraphQL Type . is Neo 4 j Spatial Type () Ġ= Ġthis . inner Name (). startsWith ("_ Neo 4 j Point ") Ċ fun ĠGraphQL Field Definition . is Neo 4 j Type (): ĠBoolean Ġ= Ġthis . type . is Neo 4 j Type () Ċ Ċ fun ĠGraphQL Field Definition . is Relationship () Ġ= Ġ! type . is Neo 4 j Type () Ġ&& Ġthis . type . inner (). let Ġ{ Ġit Ġis ĠGraphQL Fields Container Ġ} Ċ Ċ fun ĠGraphQL Fields Container . has Relationship ( name : ĠString ) Ġ= Ġthis . getField Definition ( name )?. is Relationship () Ġ?: Ġfalse Ċ fun ĠGraphQL Directive Container . is Relation Type () Ġ= Ġget Directive ( Directive Constants . REL ATION ) Ġ!= Ġnull Ċ fun ĠGraphQL Fields Container . is Relation Type () Ġ= Ġ( this Ġas ? ĠGraphQL Directive Container )?. get Directive ( Directive Constants . REL ATION ) Ġ!= Ġnull Ċ fun ĠGraphQL Fields Container . relationship For ( name : ĠString ): ĠRelationship Info ? Ġ{ ĊĠĠĠ Ġval Ġfield Ġ= Ġget Field Definition ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException ("$ name Ġis Ġnot Ġdefined Ġon Ġ${ this . name }") ĊĠĠĠ Ġval Ġfield ObjectType Ġ= Ġfield . type . inner () Ġas ? ĠGraphQL Fields Container Ġ?: Ġreturn Ġnull ĊĊĠĠĠ Ġval Ġ( rel Directive , Ġinverse ) Ġ= Ġif Ġ( is Relation Type ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtypeName Ġ= Ġthis . name ĊĠĠĠĠĠĠĠ Ġ( this Ġas ? ĠGraphQL Directive Container ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Directive ( Directive Constants . REL ATION )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġinverse Ġmapping , Ġif Ġthe Ġcurrent Ġtype Ġ Ġis Ġthe Ġ` to ` Ġmapping Ġof Ġthe Ġrelation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġto Ġ( field ObjectType . getField Definition ( it . get Argument ( REL ATION _ TO , Ġnull )) ?. name Ġ== ĠtypeName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" Type Ġ${ this . name } Ġneeds Ġan Ġ@ relation Ġdirective ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ( field ObjectType Ġas ? ĠGraphQL Directive Container ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Directive ( Directive Constants . REL ATION )?. let Ġ{ Ġit Ġto Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfield . get Directive ( Directive Constants . REL ATION )?. let Ġ{ Ġit Ġto Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" Field Ġ$ field Ġneeds Ġan Ġ@ relation Ġdirective ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrel Info Ġ= Ġrel Details ( field ObjectType , Ġrel Directive ) ĊĊĠĠĠ Ġreturn Ġif Ġ( inverse ) Ġrel Info . copy ( out Ġ= Ġrel Info . out ?. let Ġ{ Ġ! it Ġ}, Ġstart Field Ġ= Ġrel Info . end Field , Ġend Field Ġ= Ġrel Info . start Field ) Ġelse Ġrel Info Ċ } Ċ Ċ fun ĠGraphQL Fields Container . get Valid Type Labels ( schema : ĠGraphQL Schema ): ĠList < String > Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠGraphQL ObjectType ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( this . quoted Label ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( this Ġis ĠGraphQL Interface Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġschema . get Implement ations ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . quoted Label () Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġempty List () Ċ } Ċ Ċ fun ĠGraphQL Fields Container . label (): ĠString Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġthis . is Relation Type () Ġ-> ĊĠĠĠĠĠĠĠ Ġ( this Ġas ? ĠGraphQL Directive Container ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Directive ( Directive Constants . REL ATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Argument ( REL ATION _ NAME )?. value ?. to Java Value ()?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthis . name ĊĠĠĠ Ġelse Ġ-> Ġname Ċ } Ċ Ċ fun ĠGraphQL Fields Container . quoted Label () Ġ= Ġthis . label (). quote () Ċ Ċ fun ĠGraphQL Fields Container . all Labels () Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġthis . is Relation Type () Ġ-> Ġthis . quoted Label () ĊĠĠĠ Ġelse Ġ-> Ġ( listOf ( name ) Ġ+ Ġ(( this Ġas ? ĠGraphQL ObjectType )?. interfaces ?. map Ġ{ Ġit . name Ġ} Ġ?: Ġempty List ())) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . quote () Ġ} ĊĠĠĠĠĠĠĠ Ġ. join ToString (": ") Ċ } Ċ Ċ fun ĠGraphQL Fields Container . relevant Fields () Ġ= Ġfield Definitions ĊĠĠĠ Ġ. filter Ġ{ Ġit . type . is Scalar () Ġ|| Ġit . is Neo 4 j Type () Ġ} ĊĠĠĠ Ġ. sorted By Descending Ġ{ Ġit . is ID () Ġ} Ċ Ċ fun ĠGraphQL Fields Container . relationship (): ĠRelationship Info ? Ġ{ ĊĠĠĠ Ġval Ġrel Directive Ġ= Ġ( this Ġas ? ĠGraphQL Directive Container )?. get Directive ( Directive Constants . REL ATION ) Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġdirective Resolver : Ġ( name : ĠString , ĠdefaultValue : ĠString ?) Ġ-> ĠString ? Ġ= Ġ{ Ġarg Name , ĠdefaultValue Ġ-> ĊĠĠĠĠĠĠĠ Ġrel Directive . get Argument ( arg Name , ĠdefaultValue ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġrel Type Ġ= Ġdirective Resolver ( REL ATION _ NAME , Ġ"") !! ĊĠĠĠ Ġval Ġstart Field Ġ= Ġdirective Resolver ( REL ATION _ FROM , Ġnull ) ĊĠĠĠ Ġval Ġend Field Ġ= Ġdirective Resolver ( REL ATION _ TO , Ġnull ) ĊĠĠĠ Ġreturn ĠRelationship Info ( this , Ġrel Type , Ġnull , Ġstart Field , Ġend Field ) Ċ } Ċ Ċ fun ĠGraphQL Type . ref (): ĠGraphQL Type Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠGraphQL NonNull Ġ-> ĠGraphQL NonNull ( this . wrapped Type . ref ()) ĊĠĠĠ Ġis ĠGraphQL List Ġ-> ĠGraphQL List ( this . wrapped Type . ref ()) ĊĠĠĠ Ġis ĠGraphQL Scalar Type Ġ-> Ġthis ĊĠĠĠ Ġis ĠGraphQL Enum Type Ġ-> Ġthis ĊĠĠĠ Ġis ĠGraphQL Type Reference Ġ-> Ġthis ĊĠĠĠ Ġelse Ġ-> ĠGraphQL Type Reference ( name ()) Ċ } Ċ Ċ fun Ġrel Details ( type : ĠGraphQL Fields Container , Ġrel Directive : ĠGraphQL Directive ): ĠRelationship Info Ġ{ ĊĠĠĠ Ġval Ġrel Type Ġ= Ġrel Directive . get Argument ( REL ATION _ NAME , Ġ"") !! ĊĠĠĠ Ġval Ġoutgoing Ġ= Ġwhen Ġ( rel Directive . get Argument < String >( REL ATION _ DIRECTION , Ġnull )) Ġ{ ĊĠĠĠĠĠĠĠ ĠREL ATION _ DIRECTION _ IN Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ ĠREL ATION _ DIRECTION _ BOTH Ġ-> Ġnull ĊĠĠĠĠĠĠĠ ĠREL ATION _ DIRECTION _ OUT Ġ-> Ġtrue ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unknown Ġdirection Ġ${ rel Directive . get Argument < String >( REL ATION _ DIRECTION , Ġnull )} ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠRelationship Info ( type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrel Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutgoing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrel Directive . get Argument < String >( REL ATION _ FROM , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrel Directive . get Argument < String >( REL ATION _ TO , Ġnull )) Ċ } Ċ Ċ data Ġclass ĠRelationship Info ( ĊĠĠĠĠĠĠĠ Ġval Ġtype : ĠGraphQL Fields Container , ĊĠĠĠĠĠĠĠ Ġval Ġrel Type : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġout : ĠBoolean ?, ĊĠĠĠĠĠĠĠ Ġval Ġstart Field : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġend Field : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġis Rel From Type : ĠBoolean Ġ= Ġfalse Ċ ) Ġ{ ĊĠĠĠ Ġdata Ġclass ĠRelated Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargument Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield : ĠGraphQL Field Definition , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeclaring Type : ĠGraphQL Fields Container ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġarrows Ġ= Ġwhen Ġ( out ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ"< " Ġto Ġ"" ĊĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ"" Ġto Ġ" >" ĊĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ"" Ġto Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠtypeName : ĠString Ġget () Ġ= Ġthis . type . name ĊĊĠĠĠ Ġfun Ġget Start Field Id () Ġ= Ġget Related Id Field ( this . start Field ) ĊĊĠĠĠ Ġfun Ġget End Field Id () Ġ= Ġget Related Id Field ( this . end Field ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Related Id Field ( rel FieldName : ĠString ?): ĠRelated Field ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( rel FieldName Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġrel Field Definition Ġ= Ġtype . getField Definition ( rel FieldName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" field Ġ$ rel FieldName Ġdoes Ġnot Ġexists Ġon Ġ${ type . inner Name () }") ĊĠĠĠĠĠĠĠ Ġval Ġrel Type Ġ= Ġrel Field Definition . type . inner () Ġas ? ĠGraphQL Fields Container ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" type Ġ${ rel Field Definition . type . inner Name ()} Ġnot Ġfound ") ĊĠĠĠĠĠĠĠ Ġreturn Ġrel Type . field Definitions . filter Ġ{ Ġit . is ID () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠRelated Field ("${ rel FieldName }_${ it . name }", Ġit , Ġrel Type ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Relation ( start : ĠNode , Ġend : ĠNode ): ĠRelationship Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this . out ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġstart . relationship From ( end , Ġthis . rel Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġstart . relationship To ( end , Ġthis . rel Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġstart . relationship Between ( end , Ġthis . rel Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠField . alias Or Name () Ġ= Ġ( this . alias Ġ?: Ġthis . name ). quote () Ċ fun ĠGraphQL Type . inner Name (): ĠString Ġ= Ġinner (). name () ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" inner Ġname Ġcannot Ġbe Ġretrieved Ġfor Ġ" Ġ+ Ġthis . java Class ) Ċ Ċ fun ĠGraphQL Field Definition . propertyName () Ġ= Ġget Directive Argument ( PROPERTY , ĠPROPERTY _ NAME , Ġthis . name ) !! Ċ Ċ fun ĠGraphQL Field Definition . dynamic Prefix (): ĠString ? Ġ= Ġget Directive Argument ( DYNAMIC , ĠD Y NAMIC _ PREFIX , Ġnull ) Ċ fun ĠGraphQL Type . get Inner Fields Container () Ġ= Ġinner () Ġas ? ĠGraphQL Fields Container ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException ("${ this . inner Name ()} Ġis Ġneither Ġan Ġobject Ġnor Ġan Ġinterface ") Ċ Ċ fun Ġ< T > ĠGraphQL Directive Container . get Directive Argument ( directive Name : ĠString , Ġargument Name : ĠString , ĠdefaultValue : ĠT ?): ĠT ? Ġ= ĊĠĠĠĠĠĠĠ Ġget Directive ( directive Name )?. get Argument ( argument Name , ĠdefaultValue ) Ġ?: ĠdefaultValue Ċ Ċ fun Ġ< T > ĠGraphQL Directive . get Argument ( argument Name : ĠString , ĠdefaultValue : ĠT ?): ĠT ? Ġ{ ĊĠĠĠ Ġval Ġargument Ġ= Ġget Argument ( argument Name ) ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġargument ?. value Ġas ĠT ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġargument . defaultValue Ġas ĠT ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" No Ġdefault Ġvalue Ġfor Ġ@ ${ this . name } ::$ argument Name ") Ċ } Ċ Ċ fun ĠGraphQL Field Definition . cy pher Directive (): ĠCy pher ? Ġ= Ġget Directive Argument < String >( CY P HER , ĠC YP HER _ STATE MENT , Ġnull ) ĊĠĠĠ Ġ? . let Ġ{ Ġstatement Ġ-> ĠCy pher ( statement ) Ġ} Ċ Ċ fun ĠString . quote () Ġ= Ġif Ġ( is Java Identifier ()) Ġthis Ġelse Ġ"` $ this `" Ċ Ċ fun ĠString . is Java Identifier () Ġ= ĊĠĠĠĠĠĠĠ Ġthis [ 0 ]. is Java Identifier Start () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . substring ( 1 ). all Ġ{ Ġit . is Java Identifier Part () Ġ} Ċ Ċ @ Suppress (" Simpl ifiable Call Chain ") Ċ fun ĠValue < Value <* >> . to Cy pher String (): ĠString Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠString Value Ġ-> Ġ"'" Ġ+ Ġthis . value Ġ+ Ġ"'" ĊĠĠĠ Ġis ĠEnum Value Ġ-> Ġ"'" Ġ+ Ġthis . name Ġ+ Ġ"'" ĊĠĠĠ Ġis ĠNull Value Ġ-> Ġ" null " ĊĠĠĠ Ġis ĠBoolean Value Ġ-> Ġthis . is Value . toString () ĊĠĠĠ Ġis ĠFloat Value Ġ-> Ġthis . value . toString () ĊĠĠĠ Ġis ĠInt Value Ġ-> Ġthis . value . toString () ĊĠĠĠ Ġis ĠVariable Reference Ġ-> Ġ"$ " Ġ+ Ġthis . name ĊĠĠĠ Ġis ĠArray Value Ġ-> Ġthis . values . map Ġ{ Ġit . to Cy pher String () Ġ}. join ToString (",", Ġ"[", Ġ"] ") ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unhandled Ġvalue Ġ$ this ") Ċ } Ċ Ċ fun ĠAny . to Java Value () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠValue < *> Ġ-> Ġthis . to Java Value () ĊĠĠĠ Ġelse Ġ-> Ġthis Ċ } Ċ Ċ fun ĠValue <* >. to Java Value (): ĠAny ? Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠString Value Ġ-> Ġthis . value ĊĠĠĠ Ġis ĠEnum Value Ġ-> Ġthis . name ĊĠĠĠ Ġis ĠNull Value Ġ-> Ġnull ĊĠĠĠ Ġis ĠBoolean Value Ġ-> Ġthis . is Value ĊĠĠĠ Ġis ĠFloat Value Ġ-> Ġthis . value . toDouble () ĊĠĠĠ Ġis ĠInt Value Ġ-> Ġthis . value . longValue Exact () ĊĠĠĠ Ġis ĠVariable Reference Ġ-> Ġthis ĊĠĠĠ Ġis ĠArray Value Ġ-> Ġthis . values . map Ġ{ Ġit . to Java Value () Ġ}. toList () ĊĠĠĠ Ġis ĠObject Value Ġ-> Ġthis . object Fields . map Ġ{ Ġit . name Ġto Ġit . value . to Java Value () Ġ}. toMap () ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unhandled Ġvalue Ġ$ this ") Ċ } Ċ Ċ fun Ġparam Name ( variable : ĠString , Ġarg Name : ĠString , Ġvalue : ĠAny ?): ĠString Ġ= Ġwhen Ġ( value ) Ġ{ ĊĠĠĠ Ġis ĠVariable Reference Ġ-> Ġvalue . name ĊĠĠĠ Ġelse Ġ-> Ġ"$ variable ${ arg Name . capitalize () }" Ċ } Ċ Ċ fun ĠGraphQL Field Definition . is ID () Ġ= Ġthis . type . inner () Ġ== ĠScal ars . GraphQL ID Ċ fun ĠGraphQL Field Definition . is Native Id () Ġ= Ġthis . name Ġ== ĠProjection Base . NATIVE _ ID Ċ fun ĠGraphQL Fields Container . getId Field () Ġ= Ġthis . field Definitions . find Ġ{ Ġit . is ID () Ġ} Ċ Ċ fun ĠGraphQL Input ObjectType . Builder . add Filter Field ( fieldName : ĠString , Ġis List : ĠBoolean , Ġfilter Type : ĠString , Ġdescription : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġwrapped Type : ĠGraphQL InputType Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġis List Ġ-> ĠGraphQL List ( GraphQL Type Reference ( filter Type )) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠGraphQL Type Reference ( filter Type ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġinput Field Ġ= ĠGraphQL Input Object Field . new Input Object Field () ĊĠĠĠĠĠĠĠ Ġ. name ( fieldName ) ĊĠĠĠĠĠĠĠ Ġ. description ( description ) ĊĠĠĠĠĠĠĠ Ġ. type ( wrapped Type ) ĊĠĠĠ Ġthis . field ( input Field ) Ċ } Ċ