package Ġcom . mine k . kotlin . every where . l enses Ċ Ċ import Ġkotlin . internal . Exact Ċ import Ġkotlin . reflect .* Ċ import Ġkotlin . reflect . full . find Parameter ByName Ċ import Ġkotlin . reflect . full . instance Parameter Ċ import Ġkotlin . reflect . full . member Functions Ċ Ċ data Ġclass ĠMerged Property < T Ġ: ĠAny , ĠU Ġ: ĠAny , ĠV >( private Ġval Ġa : ĠK Property 1 < T , ĠU >, Ġprivate Ġval Ġb : ĠK Property 1 < U , ĠV >) Ġ: ĠK Property 1 < T , ĠV > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġinvoke ( p 1 : ĠT ): ĠV Ġ= Ġb ( a ( p 1 )) ĊĊĠĠĠ Ġoverride Ġval Ġannotations : ĠList < Annotation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġgetter : ĠK Property 1 . Getter < T , ĠV > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġis Abstract : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġis Const : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġis Final : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġis Late init : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval ĠisOpen : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġparameters : ĠList < K Parameter > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval ĠreturnType : ĠK Type ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġtype Parameters : ĠList < K Type Parameter > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĠĠĠ Ġoverride Ġval Ġvisibility : ĠK Visibility ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġerror (" not Ġimplemented ") ĊĊĠĠĠ Ġoverride Ġfun Ġcall ( var arg Ġargs : ĠAny ?): ĠV Ġ= Ġerror (" not Ġimplemented ") ĊĊĠĠĠ Ġoverride Ġfun Ġcall By ( args : ĠMap < K Parameter , ĠAny ?> ): ĠV Ġ= Ġerror (" not Ġimplemented ") ĊĊĠĠĠ Ġoverride Ġfun Ġget ( receiver : ĠT ): ĠV Ġ= Ġerror (" not Ġimplemented ") ĊĊĠĠĠ Ġoverride Ġfun Ġget Delegate ( receiver : ĠT ): ĠAny ? Ġ= Ġerror (" not Ġimplemented ") ĊĊĠĠĠ Ġfun Ġset ( from : ĠT , Ġvalue : ĠV ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġset ( from , Ġa , Ġset ( a ( from ), Ġb , Ġvalue )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ< T Ġ: ĠAny , ĠR > Ġset ( from : ĠT , Ġproperty : ĠK Property 1 < T , ĠR >, Ġvalue : ĠR ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( property ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠMerged Property < T , Ġ*, ĠR > Ġ-> Ġproperty . set ( from , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy Ġ= Ġfrom :: class . member Functions . first Ġ{ Ġit . name Ġ== Ġ" copy " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= Ġcopy . parameters . first Ġ{ Ġit . name Ġ== Ġproperty . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy . call By ( map Of ( copy . instance Parameter !! Ġto Ġfrom , Ġparameter Ġto Ġvalue )) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠLens < T Ġ: ĠAny , ĠU >( val Ġproperty : ĠK Property 1 < T , ĠU >, Ġval Ġfrom : ĠT ) Ċ Ċ infix Ġfun Ġ< T Ġ: ĠAny , ĠU > ĠLens < T , ĠU >. set ( value : ĠU ): ĠT Ġ= Ġset ( from , Ġproperty , Ġvalue ) Ċ infix Ġfun Ġ< T Ġ: ĠAny , ĠU > ĠLens < T , ĠU >. map ( mapper : Ġ( U ) Ġ-> ĠU ): ĠT Ġ= Ġset ( mapper ( property ( from ))) Ċ Ċ infix Ġoperator Ġfun Ġ< T Ġ: ĠAny , ĠU Ġ: ĠAny , ĠV > ĠK Property 1 < T , ĠU >. plus ( property : ĠK Property 1 < U , ĠV >): ĠK Property 1 < T , ĠV > Ġ= ĠMerged Property ( this , Ġproperty ) Ċ Ċ infix Ġfun Ġ< T Ġ: ĠAny , ĠR > ĠK Property 1 < T , ĠR >. from ( from : ĠT ): ĠLens < T , ĠR > Ġ= ĠLens ( this , Ġfrom ) Ċ Ċ private Ġval Ġreflect Copy Pool Ġ= Ġmutable Map Of < K Class <* >, ĠMutable Map < String , Ġ( Any , ĠAny ) Ġ-> ĠAny >>() Ċ Ċ fun Ġ< T Ġ: ĠAny > ĠT . reflect Copy ( name : ĠString , Ġvalue : ĠAny ): ĠT Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġreflect Copy Pool ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Or Put ( this :: class ) Ġ{ Ġmutable Map Of () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Or Put ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy Ġ= Ġthis :: class . member Functions . first OrNull Ġ{ Ġit . name Ġ== Ġ" copy " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġerror (" Cannot Ġfind Ġdata Ġclass Ġcopy Ġmethod ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameter Ġ= Ġcopy . find Parameter ByName ( name ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġinstance : ĠAny , Ġvalue : ĠAny Ġ-> Ġcopy . call By ( map Of ( copy . instance Parameter !! Ġto Ġinstance , Ġparameter Ġto Ġvalue )) !! Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. invoke ( this , Ġvalue ) Ġas ĠT Ċ } Ċ Ċ fun Ġ< T Ġ: ĠAny , ĠV Ġ: ĠAny > ĠT . reflect Copy ( property : ĠK Property 1 < @ Exact ĠT , Ġ@ Exact ĠV >, Ġvalue : ĠV ): ĠT Ġ= Ġreflect Copy ( property . name , Ġvalue ) Ċ fun Ġ< T Ġ: ĠAny , ĠV Ġ: ĠAny > ĠT . reflect Copy ( property : ĠK Property 0 < @ Exact ĠV >, Ġvalue : ĠV ): ĠT Ġ= Ġreflect Copy ( property . name , Ġvalue ) Ċ