package Ġnet . b jo ern pe ters en . desk bot . view . property Ċ Ċ import Ġjavafx . beans . value . Observable Value Ċ import Ġnet . b jo ern pe ters en . music bot . api . config . Config Ċ import Ġorg . controls fx . control . Property Sheet Ċ import Ġjava . util . Optional Ċ import Ġkotlin . reflect . K Class Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ sealed Ġclass ĠConfig Entry Item < T Ġ: ĠAny >( ĊĠĠĠ Ġprivate Ġval Ġtype : ĠK Class < T >, ĊĠĠĠ Ġprivate Ġval Ġis Secret : ĠBoolean Ċ ) Ġ: ĠProperty Sheet . Item Ġ{ ĊĊĠĠĠ Ġabstract Ġval Ġentry : ĠConfig . Entry < T > ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġentry . key ĊĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString Ġ= Ġentry . description ĊĠĠĠ Ġoverride Ġfun ĠgetType (): ĠClass < *> Ġ= Ġtype . java ĊĠĠĠ Ġoverride Ġfun ĠgetValue (): ĠAny ? Ġ= Ġentry . get Without Default () ĊĠĠĠ Ġoverride Ġfun Ġget Observable Value (): ĠOptional < Observable Value < out ĠAny >> Ġ= ĠOptional . empty () ĊĠĠĠ Ġoverride Ġfun Ġget Category (): ĠString Ġ= Ġif Ġ( is Secret ) Ġ" Secret " Ġelse Ġ" Pl aintext " ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfor Entry ( entry : ĠConfig . Entry <* >, Ġsecret : ĠBoolean ): ĠConfig Entry Item < *> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( entry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConfig . String Entry Ġ-> ĠString Item ( entry , Ġsecret ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConfig . Boolean Entry Ġ-> ĠBoolean Item ( entry , Ġsecret ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConfig . Serialized Entry Ġ-> ĠSerialized Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Ġas ĠConfig . Serialized Entry < Any >, Ġsecret ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unknown ĠConfig . Entry Ġtype : Ġ${ entry :: class . qualified Name }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠString Item ( ĊĠĠĠ Ġoverride Ġval Ġentry : ĠConfig . String Entry , ĊĠĠĠ Ġis Secret : ĠBoolean Ċ ) Ġ: ĠConfig Entry Item < String >( String :: class , Ġis Secret ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( value : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġentry . set ( value Ġas ĠString ?) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠBoolean Item ( ĊĠĠĠ Ġoverride Ġval Ġentry : ĠConfig . Boolean Entry , ĊĠĠĠ Ġis Secret : ĠBoolean Ċ ) Ġ: ĠConfig Entry Item < Boolean >( Boolean :: class , Ġis Secret ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( value : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġentry . set ( value Ġas ? ĠBoolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue (): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġentry . get () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ private Ġclass ĠSerialized Item ( ĊĠĠĠ Ġoverride Ġval Ġentry : ĠConfig . Serialized Entry < Any >, ĊĠĠĠ Ġis Secret : ĠBoolean Ċ ) Ġ: ĠConfig Entry Item < Any >( Any :: class , Ġis Secret ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( value : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġentry . set ( value ) ĊĠĠĠ Ġ} Ċ } Ċ