package Ġcom . sa ff rame work . k validation Ċ Ċ import Ġcom . sa ff rame work . k validation . property . Property Validator Ċ import Ġcom . sa ff rame work . k validation . rx . Rx Validator Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġt ony Ġon Ġ 2 0 1 9 - 0 7 - 0 4 . Ċ Ġ*/ Ċ fun Ġ< T > Ġdefine Validator ( block : ĠValidator < T >. () Ġ-> ĠUnit ): ĠValidator < T > Ġ{ ĊĠĠĠ Ġval Ġv Ġ= ĠValidator < T >() ĊĠĠĠ Ġblock . invoke ( v ) ĊĠĠĠ Ġreturn Ġv Ċ } Ċ Ċ fun Ġ< T > ĠT . validate ( block : ĠValidator < T >. () Ġ-> ĠUnit ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġv Ġ= ĠValidator < T >() ĊĠĠĠ Ġblock . invoke ( v ) ĊĠĠĠ Ġreturn Ġv . validate ( this ) Ċ } Ċ Ċ fun Ġ< T > Ġdefine Rx Validator ( data : ĠT , Ġblock : ĠRx Validator < T >. () Ġ-> ĠUnit ): ĠRx Validator < T > Ġ{ ĊĠĠĠ Ġval Ġv Ġ= ĠRx Validator < T >( data ) ĊĠĠĠ Ġblock . invoke ( v ) ĊĠĠĠ Ġreturn Ġv Ċ } Ċ Ċ fun Ġ< T > ĠT . rx Validator ( block : ĠRx Validator < T >. () Ġ-> ĠUnit ): ĠRx Validator < T > Ġ{ ĊĠĠĠ Ġval Ġv Ġ= ĠRx Validator < T >( this ) ĊĠĠĠ Ġblock . invoke ( v ) ĊĠĠĠ Ġreturn Ġv Ċ } Ċ Ċ fun Ġ< T > Ġdefine Property Validator ( block : ĠProperty Validator < T >. () Ġ-> ĠUnit ): ĠProperty Validator < T > Ġ{ ĊĠĠĠ Ġval Ġv Ġ= ĠProperty Validator < T >() ĊĠĠĠ Ġblock . invoke ( v ) ĊĠĠĠ Ġreturn Ġv Ċ }