package Ġrules Ċ Ċ import Ġcore . ErrorMessage Ċ import Ġorg . example . core . I Rule Ċ import Ġorg . example . core . I Rule Builder Ċ Ċ class ĠInt Less Then Rule ( val Ġtarget : ĠInt , Ġoverride Ġval Ġmessage : ĠString ) Ġ: ĠI Rule < Int >, ĠError Message Ġ{ ĊĠĠĠ Ġ@ Target ( Annotation Target . PROPERTY ) ĊĠĠĠ Ġannotation Ġclass ĠInt Less Then ( val Ġtarget : ĠInt , Ġval Ġmessage : ĠString Ġ= Ġ" The Ġvalue Ġshould Ġbe Ġless Ġthen Ġthe Ġtarget .") ĊĊĠĠĠ Ġ// TODO Ġfind Ġa Ġway Ġto Ġuse Ġtarget Ġvalue Ġinto Ġdefault Ġmessage ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( value : ĠInt ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue Ġ< Ġtarget ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĠBuilder Ġ: ĠI Rule Builder < Int >{ ĊĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild From Annotation ( annotation : ĠAnnotation ): ĠI Rule < Int >? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( annotation Ġis ĠInt Less Then ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt Less Then Rule ( annotation . target , Ġannotation . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ