/* Ċ Copyright Ġ 2 0 1 6 , ĠMark o ĠDe vc ic , Ġmade vc ic @ gmail . com , Ġhttp :// www . mark ode vc ic . com Ċ Ċ Licensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ you Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ You Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĊĊĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ċ Unless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ distributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ WITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ See Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ limitations Ġunder Ġthe ĠLicense . Ċ */ Ċ Ċ package Ġcom . mark ode vc ic . k validation Ċ Ċ /** Ċ Ġ* ĠValidator Ġclass Ġthat Ġcan Ġbe Ġused Ġinside Ġof Ġvalidated Ġobject Ċ Ġ* Ġ@ sample Ġclass ĠPerson ( private Ġval Ġname : ĠString , Ġprivate Ġval Ġage : ĠInt ) Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalidator Ġ= ĠInner Validator ( this ) Ġset Rules Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Property Ġ{ Ġp Ġ-> Ġp . name Ġ} Ġrules Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequal (" John ") Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ġ*/ Ċ class ĠInner Validator < T >( instance : ĠT ) Ġ: ĠValidator Base < T >( instance ) Ġwhere ĠT Ġ: ĠAny Ġ{ Ċ } Ċ Ċ infix Ġfun Ġ< T > ĠInner Validator < T >. set Rules ( initializer : ĠInner Validator < T >. () Ġ-> ĠUnit ): ĠInner Validator < T > Ġwhere ĠT Ġ: ĠAny Ġ{ ĊĠĠĠ Ġinitializer ( this ) ĊĠĠĠ Ġreturn Ġthis Ċ }