/* Ċ Ġ* ĠK ommand o Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) ĠL an tern Power ed Ġ< https :// www . lan tern powered . org > Ċ Ġ* ĠCopyright Ġ( c ) Ġcontributors Ċ Ġ* Ċ Ġ* ĠThis Ġwork Ġis Ġlicensed Ġunder Ġthe Ġterms Ġof Ġthe ĠMIT ĠLicense Ġ( MIT ). ĠFor Ċ Ġ* Ġa Ġcopy , Ġsee Ġ' LICENSE . txt ' Ġor Ġ< https :// opensource . org / licenses / MIT >. Ċ Ġ*/ Ċ package Ġorg . lan tern powered . kom mand o . argument Ċ Ċ import Ġorg . lan tern powered . kom mand o . Command Usage Ċ Ċ /** Ċ Ġ* ĠConstructs Ġan Ġargument Ġthat Ġprovides Ġcustom Ġsuggestions . Ċ Ġ* Ċ Ġ* Ġ@ param Ġfirst ĠThe Ġfirst Ġsuggestion Ċ Ġ* Ġ@ param Ġmore ĠThe Ġrest Ġof Ġthe Ġsuggestions Ċ Ġ* Ġ@ return ĠThe Ġargument Ċ Ġ*/ Ċ fun Ġ< T , ĠS > ĠArgument < T , ĠS >. suggest ( first : ĠString , Ġvar arg Ġmore : ĠString ): ĠSuggest ions Argument < T , ĠS > Ġ= ĊĠĠĠ Ġsuggest ( listOf ( first ) Ġ+ Ġmore ) Ċ Ċ /** Ċ Ġ* ĠConstructs Ġan Ġargument Ġthat Ġprovides Ġcustom Ġsuggestions . Ċ Ġ* Ċ Ġ* Ġ@ param Ġiterable ĠThe Ġsuggestions Ċ Ġ* Ġ@ return ĠThe Ġargument Ċ Ġ*/ Ċ fun Ġ< T , ĠS > ĠArgument < T , ĠS >. suggest ( iterable : ĠIterable < String >): ĠSuggest ions Argument < T , ĠS > Ġ= ĊĠĠĠ ĠConstant Suggestions Argument ( this , Ġiterable . toList ()) Ċ Ċ /** Ċ Ġ* ĠConstructs Ġan Ġargument Ġthat Ġprovides Ġcustom Ġsuggestions . Ċ Ġ* Ċ Ġ* Ġ@ param Ġprovider ĠThe Ġsuggestions Ġprovider Ċ Ġ* Ġ@ return ĠThe Ġargument Ċ Ġ*/ Ċ fun Ġ< T , ĠS > ĠArgument < T , ĠS >. suggest ( provider : Ġ() Ġ-> ĠList < String >): ĠDynamic Suggestions Argument < T , ĠS > Ġ= ĊĠĠĠ ĠDynamic Suggestions Argument ( this , Ġprovider ) Ċ Ċ /** Ċ Ġ* ĠA Ġsuggestions Ġargument Ġthat Ġhas Ġa Ġdynamic Ġset Ġof Ġsuggestions . Ċ Ġ*/ Ċ class ĠDynamic Suggestions Argument < T , ĠS > Ġinternal Ġconstructor ( ĊĠĠĠ Ġargument : ĠArgument < T , ĠS >, ĊĠĠĠ Ġprivate Ġval Ġprovider : Ġ() Ġ-> ĠList < String > Ċ ) Ġ: ĠSuggest ions Argument < T , ĠS >( argument ) Ġ{ ĊĊĠ Ġoverride Ġval Ġsuggestions : ĠList < String > ĊĠĠĠ Ġget () Ġ= Ġthis . provider () Ċ } Ċ Ċ /** Ċ Ġ* ĠAn Ġargument Ġthat Ġprovides Ġcustom Ġsuggestions Ġby Ċ Ġ* Ġoverriding Ġthe Ġdefault Ġones . Ċ Ġ* Ċ Ġ* Ġ@ property Ġargument ĠThe Ġbacking Ġand Ġoriginal Ġargument Ċ Ġ*/ Ċ abstract Ġclass ĠSuggest ions Argument < T , ĠS > Ġinternal Ġconstructor ( ĊĠĠĠ Ġval Ġargument : ĠArgument < T , ĠS > Ċ ) Ġ: ĠArgument < T , ĠS > Ġ{ ĊĊĠ Ġoverride Ġval Ġusage : ĠCommand Usage ĊĠĠĠ Ġget () Ġ= Ġargument . usage ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġsuggestions . ĊĠĠ Ġ*/ ĊĠ Ġabstract Ġval Ġsuggestions : ĠList < String > ĊĊĠ Ġoverride Ġfun Ġparse ( context : ĠArgument Parse Context < S >) Ġ= Ġthis . argument . parse ( context ) ĊĠ Ġoverride Ġfun Ġsuggest ( context : ĠArgument Parse Context < S >) Ġ= Ġthis . suggestions . map Ġ{ Ġcontext . suggestion ( it ) Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġsuggestions Ġargument Ġthat Ġhas Ġa Ġconstant Ġset Ċ Ġ* Ġof Ġsuggestions , Ġthe Ġsuggestions Ġwill Ġnever Ġchange . Ċ Ġ* Ċ Ġ* Ġ@ property Ġsuggestions ĠThe Ġconstant Ġsuggestions Ċ Ġ*/ Ċ private Ġclass ĠConstant Suggestions Argument < T , ĠS >( ĊĠĠĠ Ġargument : ĠArgument < T , ĠS >, ĊĠĠĠ Ġoverride Ġval Ġsuggestions : ĠList < String > Ċ ) Ġ: ĠSuggest ions Argument < T , ĠS >( argument ) Ċ