@ file : Jvm Name ("- check Capital ized Fields ") Ċ Ċ package Ġcom . ap ol log raph ql . apollo 3 . compiler Ċ Ċ import Ġcom . ap ol log raph ql . apollo 3 . annotations . A pol lo Internal Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . G QL Definition Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . G QL Field Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . G QL Fragment Definition Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . G QL Fragment Spread Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . G QL Inline Fragment Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . GQ LO peration Definition Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . G QL Selection Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . Issue Ċ import Ġcom . ap ol log raph ql . apollo 3 . ast . internal . Issues Scope Ċ Ċ @ A pol lo Internal Ċ fun Ġcheck Capital ized Fields ( definitions : ĠList < G QL Definition >): ĠList < Issue > Ġ{ ĊĠ Ġval Ġscope Ġ= Ġobject Ġ: ĠValidation Scope Ġ{ ĊĠĠĠ Ġoverride Ġval Ġissues Ġ= Ġmutable ListOf < Issue >() ĊĠĠĠ Ġoverride Ġval Ġfragments ByName Ġ= Ġdefinitions . filter Is Instance < G QL Fragment Definition >(). associate By Ġ{ Ġit . name Ġ} ĊĠ Ġ} ĊĊĠ Ġdefinitions . forEach Ġ{ ĊĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠ Ġis ĠG Q LO peration Definition Ġ-> Ġscope . check Capital ized Fields ( it . selection Set . selections ) ĊĠĠĠĠĠ Ġis ĠG QL Fragment Definition Ġ-> Ġscope . check Capital ized Fields ( it . selection Set . selections ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġreturn Ġscope . issues Ċ } Ċ Ċ /** Ċ Ġ* ĠFields Ġnamed Ġwith Ġa Ġcapital Ġfirst Ġletter Ġcl ash Ġwith Ġthe Ġcorresponding Ġmodel Ġname , Ġunless Ġflatten . Ċ Ġ*/ Ċ private Ġfun ĠValidation Scope . check Capital ized Fields ( selections : ĠList < G QL Selection >) Ġ{ ĊĠ Ġselections . forEach Ġ{ ĊĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠ Ġis ĠG QL Field Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalias Ġ= Ġit . alias ĊĠĠĠĠĠĠĠ Ġif Ġ( alias Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( is First Letter UpperCase ( alias )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġissues . add ( Issue . UpperCase Field ( message Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCap ital ized Ġalias Ġ'$ alias ' Ġis Ġnot Ġsupported Ġas Ġit Ġcauses Ġname Ġcl ashes Ġwith Ġthe Ġgenerated Ġmodels . ĠUse Ġ'${ de capitalize First Letter ( alias )} ' Ġinstead . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Location Ġ= Ġit . source Location ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( is First Letter UpperCase ( it . name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġissues . add ( Issue . UpperCase Field ( message Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCap ital ized Ġfield Ġ'${ it . name }' Ġis Ġnot Ġsupported Ġas Ġit Ġcauses Ġname Ġcl ashes Ġwith Ġthe Ġgenerated Ġmodels . ĠUse Ġan Ġalias Ġinstead Ġor Ġthe Ġ' flatten Models ' Ġcompiler Ġoption . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Location Ġ= Ġit . source Location ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit . selection Set ?. let Ġ{ Ġselection Set Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġcheck Capital ized Fields ( selection Set . selections ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠG QL Inline Fragment Ġ-> Ġcheck Capital ized Fields ( it . selection Set . selections ) ĊĠĠĠĠĠ Ġis ĠG QL Fragment Spread Ġ-> Ġcheck Capital ized Fields ( fragments ByName [ it . name ] !!. selection Set . selections ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ private Ġinterface ĠValidation Scope Ġ: ĠIssues Scope Ġ{ ĊĠ Ġoverride Ġval Ġissues : ĠMutable List < Issue > ĊĠ Ġval Ġfragments ByName : ĠMap < String , ĠG QL Fragment Definition > Ċ } Ċ Ċ private Ġfun Ġis First Letter UpperCase ( name : ĠString ): ĠBoolean Ġ{ ĊĠ Ġreturn Ġname . first OrNull Ġ{ Ġit . is Letter () Ġ} ?. is UpperCase () Ġ?: Ġtrue Ċ } Ċ Ċ private Ġfun Ġde capitalize First Letter ( name : ĠString ): ĠString Ġ{ ĊĠ Ġval Ġbuilder Ġ= ĠStringBuilder ( name . length ) ĊĠ Ġvar Ġis De capital ized Ġ= Ġfalse ĊĠ Ġname . forEach Ġ{ ĊĠĠĠ Ġbuilder . append ( if Ġ(! is De capital ized Ġ&& Ġit . is Letter ()) Ġ{ ĊĠĠĠĠĠ Ġis De capital ized Ġ= Ġtrue ĊĠĠĠĠĠ Ġit . toString (). lowercase () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġit . toString () ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĠ Ġreturn Ġbuilder . toString () Ċ } Ċ