package Ġtab ool ib . common . platform . function Ċ Ċ import Ġtab ool ib . common . io . groupId Ċ import Ġtab ool ib . common . io . tab ool ib Id Ċ import Ġtab ool ib . common . platform . Platform Factory Ċ import Ġtab ool ib . common . platform . event . Event Order Ċ import Ġtab ool ib . common . platform . event . Event Priority Ċ import Ġtab ool ib . common . platform . event . Post Order Ċ import Ġtab ool ib . common . platform . event . Proxy Listener Ċ import Ġtab ool ib . common . platform . service . Platform Listener Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ fun Ġ< T > Ġregister Listener ( event : ĠClass < T >, Ġpriority : ĠEvent Priority Ġ= ĠEvent Priority . NORMAL , Ġignore Cancelled : ĠBoolean Ġ= Ġtrue , Ġfunc : Ġ( T ) Ġ-> ĠUnit ): ĠProxy Listener Ġ{ ĊĠĠĠ Ġreturn ĠPlatform Factory . getService < Platform Listener >(). register Listener ( event , Ġpriority , Ġignore Cancelled , Ġfunc ) Ċ } Ċ Ċ fun Ġ< T > Ġregister Listener ( event : ĠClass < T >, Ġlevel : ĠInt Ġ= Ġ 0 , Ġignore Cancelled : ĠBoolean Ġ= Ġfalse , Ġfunc : Ġ( T ) Ġ-> ĠUnit ): ĠProxy Listener Ġ{ ĊĠĠĠ Ġreturn ĠPlatform Factory . getService < Platform Listener >(). register Listener ( event , Ġlevel , Ġignore Cancelled , Ġfunc ) Ċ } Ċ Ċ fun Ġ< T > Ġregister Listener ( event : ĠClass < T >, Ġpost Order : ĠPost Order Ġ= ĠPost Order . NORMAL , Ġfunc : Ġ( T ) Ġ-> ĠUnit ): ĠProxy Listener Ġ{ ĊĠĠĠ Ġreturn ĠPlatform Factory . getService < Platform Listener >(). register Listener ( event , Ġpost Order , Ġfunc ) Ċ } Ċ Ċ fun Ġ< T > Ġregister Listener ( event : ĠClass < T >, Ġorder : ĠEvent Order Ġ= ĠEvent Order . DEFAULT , Ġbefore Mod ifications : ĠBoolean Ġ= Ġfalse , Ġfunc : Ġ( T ) Ġ-> ĠUnit ): ĠProxy Listener Ġ{ ĊĠĠĠ Ġreturn ĠPlatform Factory . getService < Platform Listener >(). register Listener ( event , Ġorder , Ġbefore Mod ifications , Ġfunc ) Ċ } Ċ Ċ fun Ġunregister Listener ( proxy Listener : ĠProxy Listener ) Ġ{ ĊĠĠĠ ĠPlatform Factory . getService < Platform Listener >(). unregister Listener ( proxy Listener ) Ċ } Ċ Ċ private Ġval Ġproxy Event Name Ġ= Ġ" platform . type .${ running Platform . key } Proxy Event " Ċ Ċ private Ġval Ġplatform Event Name Ġ= Ġ"$ tab ool ib Id . platform . type .${ running Platform . key } Proxy Event " Ċ Ċ private Ġval Ġplatform Class Cache Ġ= ĠConcurrent HashMap < Class <* >, ĠBoolean >() Ċ Ċ private Ġval ĠClass <* >. is Proxy Event : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġproxy Event Ġ!= Ġnull Ċ Ċ private Ġval ĠClass <* >. proxy Event : ĠClass < *> ? ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsuperclass Ġ= Ġsuperclass ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( super class Ġ!= Ġnull Ġ&& Ġsuperclass . name . endsWith (" platform . event . Proxy Event ")) Ġsuperclass Ġelse Ġsuperclass ?. proxy Event ĊĠĠĠ Ġ} Ċ Ċ /** Ċ Ġ* Ġæĺ¯åĲ¦ ä¸º è·¨ å¹³åı° äºĭä»¶ çļĦ åŃĲ å¹³åı° å®ŀçİ° Ċ Ġ* Ġ èĢĮ éĿŀ è·¨ å¹³åı° äºĭä»¶ çļĦ æĢ» æİ¥åı£ ï¼Ī Proxy Event ï¼ī Ċ Ġ*/ Ċ val ĠClass <* >. is Platform Event : ĠBoolean ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! platform Class Cache . containsKey ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuperclass Ġ= Ġsuperclass ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplatform Class Cache [ this ] Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . endsWith ( proxy Event Name ) Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuperclass Ġ!= Ġnull Ġ&& Ġsuperclass . name . endsWith ( proxy Event Name ) Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuperclass ?. is Platform Event Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġplatform Class Cache [ this ] !! ĊĠĠĠ Ġ} Ċ Ċ fun ĠClass <* >. get Us able Event (): ĠClass < *> Ġ{ ĊĠĠĠ Ġval Ġevent Ġ= Ġproxy Event ĊĠĠĠ Ġreturn Ġif Ġ( event Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName ("${ event . groupId }. $ platform Event Name ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Unable Ġto Ġregister Ġlistener Ġ$ name ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} Ċ }