/* Ċ Ġ* ĠThis ĠSource ĠCode ĠForm Ġis Ġsubject Ġto Ġthe Ġterms Ġof Ġthe ĠMozilla ĠPublic Ċ Ġ* ĠLicense , Ġv . Ġ 2 . 0 . ĠIf Ġa Ġcopy Ġof Ġthe ĠM PL Ġwas Ġnot Ġdistributed Ġwith Ġthis Ċ Ġ* Ġfile , ĠYou Ġcan Ġobtain Ġone Ġat Ġhttps :// mozilla . org / MPL / 2 . 0 /. Ċ Ġ*/ Ċ Ċ @ file : Suppress (" StringLiteral Dup lication ", Ġ" Unused Private Member ") Ċ Ċ package Ġcom . kot l ind is cord . k ord . extensions . modules . annotations . converters Ċ Ċ import Ġcom . google . devtools . k sp . symbol . KS Class Declaration Ċ Ċ internal Ġfun Ġdefault ing Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" default ing ${ name . to Capital ized () }" Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠ ĠCreates Ġa Ġdefault ing Ġ$ name Ġconverter , Ġfor Ġsingle Ġarguments . ĊĊĠĠĠĠĠĠ Ġ@ param ĠdefaultValue ĠDefault Ġvalue Ġto Ġuse Ġif Ġno Ġargument Ġwas Ġprovided . ĊĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Default ing Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Default ing Converter < ${ generic . split (": "). first (). trim () }> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. required Fun Arg (" defaultValue ", Ġtype Param ) ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" false ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim ()) ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( type Param ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" default ing ") ĊĠĠĠ Ġ. wrapper Arg (" defaultValue ") ĊĠĠĠ Ġ. wrapper Arg (" output Error ", Ġ" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġdefault ing Choice Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" default ing ${ name . to Capital ized ()} Choice ", Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠ ĠCreates Ġa Ġdefault ing Ġ$ name Ġchoice Ġconverter , Ġfor Ġa Ġdefined Ġset Ġof Ġsingle Ġarguments . ĊĊĠĠĠĠĠĠ Ġ@ param ĠdefaultValue ĠDefault Ġvalue Ġto Ġuse Ġif Ġno Ġargument Ġwas Ġprovided . ĊĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Default ing Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Default ing Converter << ${ generic . split (": "). first (). trim ()} >> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. required Fun Arg (" defaultValue ", Ġtype Param ) ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" false ") ĊĠĠĠ Ġ. required Fun Arg (" choices ", Ġ" Map < String , Ġ$ type Param >") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim ()) ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( type Param ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. converter Arg (" choices ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" default ing ") ĊĠĠĠ Ġ. wrapper Arg (" defaultValue ") ĊĠĠĠ Ġ. wrapper Arg (" output Error ", Ġ" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġdefault ing Co ale sc ing Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" default ing Co ale sc ing ${ name . to Capital ized () }", Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠ ĠCreates Ġa Ġdefault ing Ġco ale sc ing Ġ$ name Ġconverter . ĊĊĠĠĠĠĠĠ Ġ@ param ĠdefaultValue ĠDefault Ġvalue Ġto Ġuse Ġif Ġno Ġargument Ġwas Ġprovided . ĊĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Default ing Co ale sc ing Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Default ing Co ale sc ing Converter < ${ generic . split (": "). first (). trim () }> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. required Fun Arg (" defaultValue ", Ġtype Param ) ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" false ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim ()) ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( type Param ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" default ing ") ĊĠĠĠ Ġ. wrapper Arg (" defaultValue ") ĊĠĠĠ Ġ. wrapper Arg (" output Error ", Ġ" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġlist Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ"${ name . to Lower ed ()} List " Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠCreates Ġa Ġ$ name Ġconverter , Ġfor Ġlists Ġof Ġarguments . ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ@ param Ġrequired ĠWhether Ġcommand Ġparsing Ġshould Ġfail Ġif Ġno Ġarguments Ġcould Ġbe Ġconverted . ĊĠĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Multi Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Multi Converter < ${ generic . split (": "). first (). trim () }> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" true ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args (" List < ${ generic !!. split (": "). first (). trim () }> ") ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args (" List <$ type Param >") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" multi ") ĊĠĠĠ Ġ. wrapper Arg (" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġlist Choice Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= Ġerror (" Choice Ġconverter s Ġare Ġincompatible Ġwith Ġlist Ġconverter s .") Ċ Ċ internal Ġfun Ġlist Co ale sc ing Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= Ġerror (" Co ale sc ing Ġconverter s Ġare Ġincompatible Ġwith Ġlist Ġconverter s .") Ċ Ċ internal Ġfun Ġsingle Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġname . to Lower ed () Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠCreates Ġa Ġ$ name Ġconverter , Ġfor Ġsingle Ġarguments . ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Single Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Single Converter < ${ generic . split (": "). first (). trim () }> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim ()) ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( type Param ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. converter Arg (" validator ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġsingle Choice Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ"${ name . to Lower ed ()} Choice " Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠ ĠCreates Ġa Ġ$ name Ġchoice Ġconverter , Ġfor Ġa Ġdefined Ġset Ġof Ġsingle Ġarguments . ĊĠĠĠĠĊĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Single Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Single Converter < ${ generic . split (": "). first (). trim () }> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. required Fun Arg (" choices ", Ġ" Map < String , Ġ$ type Param >") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim ()) ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( type Param ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. converter Arg (" choices ") ĊĠĠĠ Ġ. converter Arg (" validator ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġsingle Co ale sc ing Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" co ale sc ed ${ name . to Capital ized () }", Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠ ĠCreates Ġa Ġco ale sc ing Ġ$ name Ġconverter . ĊĊĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Co ale sc ing Converter <$ type Param >") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Co ale sc ing Converter < ${ generic . split (": "). first (). trim () }> " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim ()) ĊĠĠĠ Ġ}. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( type Param ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. converter Arg (" validator ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġoptional Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" optional ${ name . to Capital ized () }", Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠCreates Ġan Ġoptional Ġ$ name Ġconverter , Ġfor Ġsingle Ġarguments . ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ@ param Ġrequired ĠWhether Ġcommand Ġparsing Ġshould Ġfail Ġif Ġan Ġinvalid Ġargument Ġis Ġprovided . ĊĠĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Optional Converter <$ type Param ?> ") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Optional Converter < ${ generic . split (": "). first (). trim ()} ?>" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" false ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim () Ġ+ Ġ"? ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ("$ type Param ?") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" optional ") ĊĠĠĠ Ġ. wrapper Arg (" output Error ", Ġ" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġoptional Choice Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" optional ${ name . to Capital ized ()} Choice ", Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠCreates Ġan Ġoptional Ġ$ name Ġchoice Ġconverter , Ġfor Ġa Ġdefined Ġset Ġof Ġsingle Ġarguments . ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Optional Converter <$ type Param ?> ") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Optional Converter < ${ generic . split (": "). first (). trim ()} ?>" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. required Fun Arg (" choices ", Ġ" Map < String , Ġ$ type Param >") ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" false ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim () Ġ+ Ġ"? ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ("$ type Param ?") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. converter Arg (" choices ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" optional ") ĊĠĠĠ Ġ. wrapper Arg (" output Error ", Ġ" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ Ċ internal Ġfun Ġoptional Co ale sc ing Converter ( ĊĠĠĠ Ġclass Declaration : ĠK S Class Declaration , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġtype Param : ĠString , ĊĠĠĠ Ġextra Arguments : ĠArrayList < String >, ĊĠĠĠ Ġgeneric : ĠString ?, Ċ ): ĠString Ġ= ĠConverter Function Builder ( ĊĠĠĠ Ġ" optional Co ale sc ing ${ name . to Capital ized () }", Ċ ). comment ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠ ĠCreates Ġan Ġoptional Ġco ale sc ing Ġ$ name Ġconverter . ĊĊĠĠĠĠĠĠ Ġ@ see Ġ${ class Declaration . simple Name . asString ()} ĊĠĠĠ Ġ""" . trim Indent () Ċ ) ĊĠĠĠ Ġ. converter ( class Declaration . simple Name . asString ()) ĊĠĠĠ Ġ. returnType (" Optional Co ale sc ing Converter <$ type Param ?> ") ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Generic ( generic !! ) ĊĊĠĠĠĠĠĠĠ ĠreturnType ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Optional Co ale sc ing Converter < ${ generic . split (": "). first (). trim ()} ?>" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. default First Args () ĊĠĠĠ Ġ. optional Fun Arg (" required ", Ġ" Boolean ", Ġ" false ") ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Fun Arg ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ( generic !!. split (": "). first (). trim () Ġ+ Ġ"? ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( generic Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Last Args ("$ type Param ?") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. maybe ( extra Arguments . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Arguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Arg ( it . split (": "). first (). trim (). split (" Ġ"). last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ. wrapper (" optional ") ĊĠĠĠ Ġ. wrapper Arg (" output Error ", Ġ" required ") ĊĠĠĠ Ġ. wrapper Arg (" nested Validator ", Ġ" validator ") ĊĠĠĠ Ġ. build () Ċ