package Ġgraphql . schema Ċ Ċ import Ġkotlin . properties . Deleg ates . notNull ĊĊ Ċ class ĠGraphQL Argument ( val Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype : ĠGraphQL InputType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdefaultValue : ĠAny ?) Ġ{ ĊĊĠĠĠ Ġvar Ġtype : ĠGraphQL InputType Ġ= Ġtype ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfield ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġreplace Type References ( type Map : ĠMap < String , ĠGraphQL Type >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠSchema Util (). resolve Type Reference ( type , Ġtype Map ) Ġas ĠGraphQL InputType ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GraphQL Dsl Marker ĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġname : ĠString Ġby Ġnot Null < String >() ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠGraphQL InputType Ġby Ġnot Null < GraphQL InputType >() ĊĠĠĠĠĠĠĠ Ġvar ĠdefaultValue : ĠAny ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġdescription : ĠString Ġ= Ġ" No Ġdescription Ġavailable ." ĊĊĠĠĠĠĠĠĠ Ġfun Ġname ( name : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdescription ( description : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . description Ġ= Ġdescription ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtype ( type : ĠGraphQL InputType ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠdefaultValue ( defaultValue : ĠAny ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . defaultValue Ġ= ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠGraphQL Argument Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠGraphQL Argument ( name , Ġdescription , Ġtype , ĠdefaultValue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Argument (): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBuilder () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġnew Argument (): ĠGraphQL Argument . Builder Ġ{ ĊĠĠĠ Ġreturn ĠGraphQL Argument . Builder () Ċ } Ċ Ċ fun Ġnew Argument ( block : ĠGraphQL Argument . Builder . () Ġ-> ĠUnit ) Ġ: ĠGraphQL Argument Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= Ġnew Argument () ĊĠĠĠ Ġbuilder . block () ĊĠĠĠ Ġreturn Ġbuilder . build () Ċ } ĊĊ