@ file : Opt In ( K ord Preview :: class ) Ċ Ċ package Ġcom . kot l ind is cord . k ord . extensions . commands . converters Ċ Ċ import Ġdev . k ord . common . annotation . K ord Preview Ċ Ċ /** Ċ Ġ* ĠAbstract Ġbase Ġclass Ġfor Ġa Ġsingle Ġconverter . Ċ Ġ* Ċ Ġ* ĠSingle Ġconverter s Ġtake Ġa Ġsingle Ġstring Ġargument , Ġtransform ing Ġit Ġinto Ġa Ġsingle Ġresulting Ġvalue . ĠSingle Ġconverter s Ċ Ġ* Ġare Ġalways Ġrequired . Ċ Ġ* Ċ Ġ* ĠYou Ġcan Ġconvert Ġa Ġ[ Single Converter ] Ġinstance Ġto Ġa Ġdefault ing , Ġoptional Ġor Ġmulti Ġconverter Ċ Ġ* Ġusing Ġ[ to Default ing ]. Ġ[ to Multi ] Ġor Ġ[ to Optional ] Ġrespectively . Ċ Ġ* Ċ Ġ* ĠYou Ġcan Ġcreate Ġa Ġsingle Ġconverter Ġof Ġyour Ġown Ġby Ġextending Ġthis Ġclass . Ċ Ġ* Ċ Ġ* Ġ@ property Ġvalidator ĠValidation Ġlambda , Ġwhich Ġmay Ġthrow Ġa ĠCommand Exception Ġif Ġrequired . Ċ Ġ*/ Ċ public Ġabstract Ġclass ĠSingle Converter < T Ġ: ĠAny >( ĊĠĠĠ Ġoverride Ġvar Ġvalidator : ĠValidator < T > Ġ= Ġnull Ċ ) Ġ: ĠConverter < T , ĠT , ĠString , ĠBoolean >( true ), ĠSl ash Command Converter Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġparsed Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġshould Ġbe Ġset Ġby Ġthe Ġconverter Ġduring Ġthe Ġcourse Ġof Ġthe Ġ[ parse ] Ġfunction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoverride Ġlateinit Ġvar Ġparsed : ĠT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrap Ġthis Ġsingle Ġconverter Ġwith Ġa Ġ[ Single To Multi Converter ], Ġwhich Ġis Ġa Ġspecial Ġconverter Ġthat Ġwill Ġact Ġlike Ġa ĊĠĠĠĠ Ġ* Ġ[ Multi Converter ] Ġusing Ġthe Ġsame Ġlogic Ġof Ġthis Ġconverter . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠYour Ġconverter Ġshould Ġbe Ġdesigned Ġwith Ġthis Ġpattern Ġin Ġmind . ĠIf Ġthat 's Ġnot Ġpossible , Ġplease Ġoverride Ġthis ĊĠĠĠĠ Ġ* Ġfunction Ġand Ġthrow Ġan Ġexception Ġin Ġthe Ġbody . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġmore Ġinformation Ġon Ġthe Ġparameters , Ġsee Ġ[ Converter ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġrequired ĠWhether Ġcommand Ġparsing Ġshould Ġfail Ġif Ġno Ġarguments Ġcould Ġbe Ġconverted . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsignature TypeString ĠOptionally , Ġa Ġsignature Ġtype Ġstring Ġto Ġuse Ġinstead Ġof Ġthe Ġone Ġthis Ġconverter ĊĠĠĠĠ Ġ* Ġprovides . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Type In Signature ĠOptionally , Ġoverride Ġthis Ġconverter 's Ġsetting Ġfor Ġshowing Ġthe Ġtype Ġstring Ġin Ġa ĊĠĠĠĠ Ġ* Ġgenerated Ġcommand Ġsignature . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġerror TypeString ĠOptionally , Ġa Ġlonger Ġtype Ġstring Ġto Ġbe Ġshown Ġin Ġerrors Ġinstead Ġof Ġthe Ġone Ġthis Ġconverter ĊĠĠĠĠ Ġ* Ġprovides . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Converter To Multi ĊĠĠĠ Ġpublic Ġopen Ġfun Ġto Multi ( ĊĠĠĠĠĠĠĠ Ġrequired : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġsignature TypeString : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġshow Type In Signature : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġerror TypeString : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġnested Validator : ĠValidator < List < T >> Ġ= Ġnull ĊĠĠĠ Ġ): ĠMulti Converter < T > Ġ= ĠSingle To Multi Converter ( ĊĠĠĠĠĠĠĠ Ġrequired , ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġsignature TypeString , ĊĠĠĠĠĠĠĠ Ġshow Type In Signature , ĊĠĠĠĠĠĠĠ Ġerror TypeString , ĊĠĠĠĠĠĠĠ Ġnested Validator ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrap Ġthis Ġsingle Ġconverter Ġwith Ġa Ġ[ Single To Optional Converter ], Ġwhich Ġis Ġa Ġspecial Ġconverter Ġthat Ġwill Ġact Ġlike ĊĠĠĠĠ Ġ* Ġan Ġ[ Optional Converter ] Ġusing Ġthe Ġsame Ġlogic Ġof Ġthis Ġconverter . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠYour Ġconverter Ġshould Ġbe Ġdesigned Ġwith Ġthis Ġpattern Ġin Ġmind . ĠIf Ġthat 's Ġnot Ġpossible , Ġplease Ġoverride Ġthis ĊĠĠĠĠ Ġ* Ġfunction Ġand Ġthrow Ġan Ġexception Ġin Ġthe Ġbody . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġmore Ġinformation Ġon Ġthe Ġparameters , Ġsee Ġ[ Converter ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsignature TypeString ĠOptionally , Ġa Ġsignature Ġtype Ġstring Ġto Ġuse Ġinstead Ġof Ġthe Ġone Ġthis Ġconverter ĊĠĠĠĠ Ġ* Ġprovides . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Type In Signature ĠOptionally , Ġoverride Ġthis Ġconverter 's Ġsetting Ġfor Ġshowing Ġthe Ġtype Ġstring Ġin Ġa ĊĠĠĠĠ Ġ* Ġgenerated Ġcommand Ġsignature . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġerror TypeString ĠOptionally , Ġa Ġlonger Ġtype Ġstring Ġto Ġbe Ġshown Ġin Ġerrors Ġinstead Ġof Ġthe Ġone Ġthis Ġconverter ĊĠĠĠĠ Ġ* Ġprovides . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġoutput Error ĠOptionally , Ġprovide Ġ` true ` Ġto Ġfail Ġparsing Ġand Ġreturn Ġerrors Ġif Ġthe Ġconverter Ġthrows Ġa ĊĠĠĠĠ Ġ* Ġ[ Command Exception ], Ġinstead Ġof Ġcontinuing . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Converter To Optional ĊĠĠĠ Ġpublic Ġopen Ġfun Ġto Optional ( ĊĠĠĠĠĠĠĠ Ġsignature TypeString : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġshow Type In Signature : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġerror TypeString : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġoutput Error : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġnested Validator : ĠValidator < T ?> Ġ= Ġnull ĊĠĠĠ Ġ): ĠOptional Converter < T ?> Ġ= ĠSingle To Optional Converter ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ Ġsignature TypeString , ĊĠĠĠĠĠĠĠ Ġshow Type In Signature , ĊĠĠĠĠĠĠĠ Ġerror TypeString , ĊĠĠĠĠĠĠĠ Ġoutput Error , ĊĠĠĠĠĠĠĠ Ġnested Validator ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrap Ġthis Ġsingle Ġconverter Ġwith Ġa Ġ[ Single To Default ing Converter ], Ġwhich Ġis Ġa Ġspecial Ġconverter Ġthat Ġwill Ġact Ġlike ĊĠĠĠĠ Ġ* Ġa Ġ[ Default ing Converter ] Ġusing Ġthe Ġsame Ġlogic Ġof Ġthis Ġconverter . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠYour Ġconverter Ġshould Ġbe Ġdesigned Ġwith Ġthis Ġpattern Ġin Ġmind . ĠIf Ġthat 's Ġnot Ġpossible , Ġplease Ġoverride Ġthis ĊĠĠĠĠ Ġ* Ġfunction Ġand Ġthrow Ġan Ġexception Ġin Ġthe Ġbody . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġmore Ġinformation Ġon Ġthe Ġparameters , Ġsee Ġ[ Converter ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠdefaultValue ĠThe Ġdefault Ġvalue Ġto Ġuse Ġwhen Ġan Ġargument Ġcan 't Ġbe Ġconverted . ĊĠĠĠĠ Ġ* Ġ@ param Ġoutput Error ĠWhether Ġthe Ġargument Ġparser Ġshould Ġoutput Ġparsing Ġerrors Ġon Ġinvalid Ġarguments . ĊĠĠĠĠ Ġ* Ġ@ param Ġsignature TypeString ĠOptionally , Ġa Ġsignature Ġtype Ġstring Ġto Ġuse Ġinstead Ġof Ġthe Ġone Ġthis Ġconverter ĊĠĠĠĠ Ġ* Ġprovides . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Type In Signature ĠOptionally , Ġoverride Ġthis Ġconverter 's Ġsetting Ġfor Ġshowing Ġthe Ġtype Ġstring Ġin Ġa ĊĠĠĠĠ Ġ* Ġgenerated Ġcommand Ġsignature . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġerror TypeString ĠOptionally , Ġa Ġlonger Ġtype Ġstring Ġto Ġbe Ġshown Ġin Ġerrors Ġinstead Ġof Ġthe Ġone Ġthis Ġconverter ĊĠĠĠĠ Ġ* Ġprovides . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Converter To Default ing ĊĠĠĠ Ġpublic Ġopen Ġfun Ġto Default ing ( ĊĠĠĠĠĠĠĠ ĠdefaultValue : ĠT , ĊĠĠĠĠĠĠĠ Ġoutput Error : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġsignature TypeString : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġshow Type In Signature : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġerror TypeString : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġnested Validator : ĠValidator < T > Ġ= Ġnull ĊĠĠĠ Ġ): ĠDefault ing Converter < T > Ġ= ĠSingle To Default ing Converter ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ ĠdefaultValue Ġ= ĠdefaultValue , ĊĠĠĠĠĠĠĠ Ġoutput Error Ġ= Ġoutput Error , ĊĠĠĠĠĠĠĠ Ġnew Signature TypeString Ġ= Ġsignature TypeString , ĊĠĠĠĠĠĠĠ Ġnew Show Type In Signature Ġ= Ġshow Type In Signature , ĊĠĠĠĠĠĠĠ Ġnew ErrorType String Ġ= Ġerror TypeString , ĊĠĠĠĠĠĠĠ Ġvalidator Ġ= Ġnested Validator ĊĠĠĠ Ġ) Ċ } Ċ