package Ġpw . dot dash . b ending . plugin . ability Ċ Ċ import Ġpw . dot dash . b ending . api . ability . Ability Context Ċ import Ġpw . dot dash . b ending . api . ability . Ability Context Key Ċ import Ġjava . util .* Ċ import Ġkotlin . NoSuch ElementException Ċ Ċ class ĠSimple Ability Context () Ġ: ĠAbility Context Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmap Ġ= ĠIdentity HashMap < Ability Context Key < out ĠAny >, ĠAny >() ĊĊĠĠĠ Ġconstructor ( map : ĠMap < Ability Context Key < out ĠAny >, ĠAny >) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . map . put All ( map ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< E Ġ: ĠAny > Ġget ( key : ĠAbility Context Key < E >): ĠOptional < E > Ġ= ĊĠĠĠĠĠĠĠ ĠOptional . of Nullable ( this . map [ key ] Ġas ĠE ?) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< E Ġ: ĠAny ?> Ġrequire ( key : ĠAbility Context Key < E >): ĠE Ġ= ĊĠĠĠĠĠĠĠ Ġ( this . map [ key ] Ġas ĠE ?) Ġ?: Ġthrow ĠNoSuch ElementException ( key . toString ()) ĊĊĠĠĠ Ġoverride Ġfun Ġ< E Ġ: ĠAny > Ġset ( key : ĠAbility Context Key < E >, Ġvalue : ĠE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . map [ key ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< E Ġ: ĠAny > Ġremove ( key : ĠAbility Context Key < E >): ĠOptional < E > Ġ= ĊĠĠĠĠĠĠĠ ĠOptional . of Nullable ( this . map . remove ( key ) Ġas ĠE ?) ĊĊĠĠĠ Ġoverride Ġfun Ġcontains ( key : ĠAbility Context Key < *> ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġkey Ġin Ġthis . map ĊĊĠĠĠ Ġclass ĠBuilder Ġ: ĠAbility Context . Builder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġentries Ġ= ĠHashMap < Ability Context Key < out ĠAny >, ĠAny >() ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< E Ġ: ĠAny > Ġadd ( key : ĠAbility Context Key < E >, Ġvalue : ĠE ): ĠAbility Context . Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . entries [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfrom ( value : ĠAbility Context ): ĠAbility Context . Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreset (): ĠAbility Context . Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . entries . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠAbility Context Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Ability Context ( this . entries ) ĊĠĠĠ Ġ} Ċ }