package Ġcom . mir u ken . callback . policy Ċ Ċ import Ġcom . mir u ken . Type Reference Ċ import Ġcom . mir u ken . callback . policy . bindings . Policy Member Binding Ċ import Ġkotlin . reflect . K Class Ċ Ċ type alias ĠHandler Descriptor Visitor Ġ= ĊĠĠĠĠĠĠĠ Ġ( Handler Descriptor , ĠPolicy Member Binding ) Ġ-> ĠUnit Ċ Ċ interface ĠHandler Descriptor Factory Ġ{ ĊĠĠĠ Ġfun ĠgetDescriptor ( handler Class : ĠK Class < *> ): ĠHandler Descriptor ? ĊĊĠĠĠ Ġfun Ġregister Descriptor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler Class : Ġ ĠK Class <* >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Visitor : ĠHandler Descriptor Visitor ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠHandler Descriptor ĊĊĠĠĠ Ġfun ĠgetInstance Handlers ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpolicy : ĠĠĠĠĠĠ ĠCallback Policy , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : ĠĠĠĠ ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Type : ĠType Reference ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠList < Handler Descriptor > ĊĊĠĠĠ Ġfun ĠgetType Handlers ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpolicy : ĠĠĠĠĠĠ ĠCallback Policy , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : ĠĠĠĠ ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Type : ĠType Reference ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠList < Handler Descriptor > ĊĊĠĠĠ Ġfun Ġget Callback Handlers ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpolicy : ĠĠĠĠĠĠ ĠCallback Policy , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : ĠĠĠĠ ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback Type : ĠType Reference ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠList < Handler Descriptor > ĊĊĠĠĠ Ġfun Ġget Policy Members ( policy : ĠCallback Policy , Ġkey : ĠAny ): ĠList < Policy Member Binding > ĊĊĠĠĠ Ġfun Ġget Policy Members ( policy : ĠCallback Policy ): ĠList < Policy Member Binding > ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġfactory : ĠHandler Descriptor Factory ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Ġ= ĠMutable Handler Descriptor Factory () ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent : ĠHandler Descriptor Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġfactory Ġ?: Ġdefault ĊĊĠĠĠĠĠĠĠ Ġfun Ġuse Factory ( factory : ĠHandler Descriptor Factory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . factory Ġ= Ġfactory ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠHandler Descriptor Factory . get Descriptor () Ġ= ĊĠĠĠĠĠĠĠ ĠgetDescriptor ( T :: class ) Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠHandler Descriptor Factory . register Descriptor ( ĊĠĠĠĠĠĠĠ Ġno inline Ġcustom Visitor : ĠHandler Descriptor Visitor ? Ġ= Ġnull Ċ ) Ġ= Ġregister Descriptor ( T :: class , Ġcustom Visitor ) Ċ Ċ fun ĠHandler Descriptor Factory . get Callback Methods ( ĊĠĠĠĠĠĠĠ Ġpolicy : ĠĠĠĠĠĠ ĠCallback Policy , ĊĠĠĠĠĠĠĠ Ġcallback : ĠĠĠĠ ĠAny , ĊĠĠĠĠĠĠĠ Ġcallback Type : ĠType Reference ? Ġ= Ġnull Ċ ) Ġ= Ġpolicy . getKey ( callback , Ġcallback Type )?. let Ġ{ ĊĠĠĠ Ġget Policy Members ( policy ) Ċ } Ġ?: Ġempty List ()