package Ġcom . r icky . eq list . initializer Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . r icky . eq list . Log Util Ċ import Ġcom . r icky . eq list . adapter . Item Definition Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ author ĠR icky ĠHal Ċ Ġ* Ġ@ date Ġ 2 0 2 1 / 1 1 / 1 8 Ċ Ġ*/ Ċ abstract Ġclass ĠBase Initial Dsl ( val Ġre cyclerView : ĠRecyclerView ) Ġ{ ĊĠĠĠ Ġval Ġitem Definitions Ġ= Ġmutable ListOf < Item Definition >() ĊĠĠĠ Ġvar Ġon Attach Block : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġvar Ġon Detach Block : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġinternal Ġfun Ġget ViewType For Class ( className : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Definitions . first OrNull Ġ{ Ġit . entityName Ġ== ĠclassName Ġ} ?. view Type Ġ?: ĠItem Definition . TYPE _ EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun ĠgetItem Definition ( view Type : ĠInt ): ĠItem Definition Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Definitions . first OrNull Ġ{ Ġit . view Type Ġ== Ġview Type Ġ} Ġ?: ĠItem Definition . default () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Debug ( isDebug : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog Util . isDebug Ġ= Ġis Debug ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Attach ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Attach Block Ġ= Ġblock ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Detach ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Detach Block Ġ= Ġblock ĊĠĠĠ Ġ} Ċ }