package Ġbr . com . z up . edu . pix . regist ra Ċ Ċ import Ġjavax . inject . Singleton Ċ import Ġjavax . validation . Constraint Ċ import Ġjavax . validation . Constraint Validator Context Ċ import Ġjavax . validation . Payload Ċ import Ġkotlin . annotation . Annotation Retention . RUNTIME Ċ import Ġkotlin . annotation . Annotation Target . CLASS Ċ import Ġkotlin . annotation . Annotation Target . TYPE Ċ import Ġkotlin . reflect . K Class Ċ Ċ @ Must Be Document ed Ċ @ Target ( CLASS , ĠTYPE ) Ċ @ Retention ( RUNTIME ) Ċ @ Constraint ( validated By Ġ= Ġ[ Valid Pix Key Validator :: class ]) Ċ annotation Ġclass ĠValid Pix Key ( ĊĠĠĠ Ġval Ġmessage : ĠString Ġ= Ġ" Ch ave Ġpix Ġinv Ã¡l ida Ġ(\ ${ validated Value . tipo Ch ave })", ĊĠĠĠ Ġval Ġgroups : ĠArray < K Class < Any >> Ġ= Ġ[], ĊĠĠĠ Ġval Ġpayload : ĠArray < K Class < Payload >> Ġ= Ġ[], Ċ ) Ċ Ċ @ Singleton Ċ class ĠValid Pix Key Validator : Ġjavax . validation . Constraint Validator < Valid Pix Key , ĠN ova Ch ave Pix > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( value : ĠN ova Ch ave Pix ?, Ġcontext : ĠConstraint Validator Context ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( value ?. tipo Ch ave Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġvalid Ġ= Ġvalue . tipo Ch ave . valid a ( value . ch ave Pix ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! valid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . disable Default Constraint Violation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Constraint Violation With Template ( context . default Constraint Message Template ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addProperty Node (" ch ave Pix "). add Constraint Violation () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalid ĊĠĠĠ Ġ} Ċ }