package Ġcom . chr yn an . validator Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠA Ġ[ RuntimeException ] Ġthat Ġindicates Ġthere Ġwas Ġan Ġerror Ġassert ing Ġthat Ġa Ġ[ Validation Result ] Ġwas Ġvalid Ġor Ġinvalid . Ċ Ġ* Ċ Ġ* ĠThis Ġexception Ġis Ġthrown Ġfrom Ġthe Ġ[ assert Valid ] Ġand Ġ[ assert Invalid ] Ġfunctions . Ċ Ġ*/ Ċ class ĠValidation Exception Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠString ? Ġ= Ġnull Ċ ) Ġ: ĠRuntimeException ( message ) Ċ Ċ /** Ċ Ġ* ĠA Ġcreator Ġfunction Ġfor Ġthe Ġ[ ValidationException ] Ġclass . Ċ Ġ*/ Ċ @ Suppress (" FunctionName ") Ċ fun Ġ< T , ĠE Ġ: ĠValidation Result <* >> ĠValidation Exception ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġresult : ĠValidation Result < T >, ĊĠĠĠĠĠĠĠ Ġexpected : ĠK Class < E > Ċ ): ĠValidation Exception Ġ{ ĊĠĠĠ Ġval Ġfull Message Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (" ValidationException : ĠUnexpected ĠValidation Result : Ġexpected Ġ= Ġ$ expected ; Ġactual Ġ= Ġ${ result :: class }\ n ") ĊĠĠĠĠĠĠĠ Ġappend (" result Ġ= Ġ$ result \ n ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( message Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" message Ġ= Ġ$ message \ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠValidation Exception ( message Ġ= Ġfull Message ) Ċ }