package Ġnl . dev ha an . kotlin po et dsl . inheritance Ċ Ċ import Ġcom . squareup . kotlin po et . Code Block Ċ import Ġcom . squareup . kotlin po et . TypeName Ċ import Ġcom . squareup . kotlin po et . as TypeName Ċ import Ġnl . dev ha an . kotlin po et dsl . EMPTY _ CODE BLOCK Ċ import Ġnl . dev ha an . kotlin po et dsl .` interface `. Interface Builder Ċ import Ġnl . dev ha an . kotlin po et dsl . classes . Class Builder Ċ import Ġkotlin . reflect . K Class Ċ Ċ class ĠImplementation DSL ( val Ġclass Builder : ĠClass Builder ) Ġ{ ĊĠĠĠ Ġclass ĠDeleg ation Property ( val Ġname : ĠString ) ĊĊĠĠĠ Ġoperator Ġfun ĠK Class <* >. invoke ( format : ĠString ? Ġ= Ġnull , Ġvar arg Ġparts : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcode Block Ġ= Ġformat ?. let Ġ{ ĠCode Block . of ( it , Ġ* parts ) Ġ} Ġ?: ĠEMPTY _ CODE BLOCK ĊĠĠĠĠĠĠĠ Ġclass Builder . add Implement ( this . as TypeName (), Ġcode Block ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠType Name . invoke ( format : ĠString ? Ġ= Ġnull , Ġvar arg Ġparts : ĠAny ? ){ ĊĠĠĠĠĠĠĠ Ġval Ġcode Block Ġ= Ġformat ?. let Ġ{ ĠCode Block . of ( it , Ġ* parts ) Ġ} Ġ?: ĠEMPTY _ CODE BLOCK ĊĠĠĠĠĠĠĠ Ġclass Builder . add Implement ( this , Ġcode Block ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoperator Ġfun ĠK Class <* >. invoke ( del Var : ĠDeleg ation Property ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclass Builder . add Implement ( this . as TypeName (), Ġdel Var . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdel Var ( name : ĠString ) Ġ= ĠDeleg ation Property ( name ) Ċ }