package Ġmar ais . graphql . dsl Ċ Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġorg . apache . logging . log 4 j . Logger Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . full . is Subclass Of Ċ Ċ /** Ċ Ġ* ĠCalled Ġwhen Ġconverting Ġa Ġstring Ġinput Ġto Ġyour ĠId Ġclass Ċ Ġ*/ Ċ type alias ĠId Co erc er < T > Ġ= Ġ( value : ĠString ?) Ġ-> ĠT ? Ċ Ċ /** Ċ Ġ* ĠShared Ġread - only Ġcontext Ġfor Ġall Ġbuild ers Ċ Ġ*/ Ċ class ĠSchema Builder Context ( ĊĠĠĠ Ġval Ġlog : ĠLogger , ĊĠĠĠ Ġval Ġid Co erc ers : ĠMap < K Class <* >, ĠId Co erc er <* >>, ĊĠĠĠ Ġval Ġinputs : ĠList < Input Spec >, ĊĠĠĠ Ġval Ġinterfaces : ĠList < Interface Spec <* >> Ċ ) Ġ{ ĊĊĠĠĠ Ġinternal Ġval Ġlog Der ive Ġ= ĠLog Manager . getLogger ("${ log . name }. derive ") ĊĊĠĠĠ Ġinternal Ġvar Ġconvert Flow To Publisher Ġ= Ġtrue ĊĊĠĠĠ Ġinternal Ġfun Ġget InputType ( k class : ĠK Class <* >) Ġ= Ġinputs . find Ġ{ Ġit . k class Ġ== Ġk class Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġis InputType ( k class : ĠK Class <* >) Ġ= Ġget InputType ( k class ) Ġ!= Ġnull ĊĊĠĠĠ Ġinternal Ġfun Ġget Implemented Interfaces ( k class : ĠK Class < *> ): ĠList < K Class <* >> Ġ= Ġinterfaces . filter Ġ{ ĊĠĠĠĠĠĠĠ Ġk class . is Subclass Of ( it . k class ) ĊĠĠĠ Ġ}. map Ġ{ Ġit . k class Ġ} Ċ } Ċ