package Ġbr . com . z up . edu . c int ia . pix . valid acoes Ċ Ċ import Ġbr . com . z up . edu . c int ia . pix . regist r ach ave . dto . Nova Ch ave Pix Request Ċ import Ġjavax . inject . Singleton Ċ import Ġjavax . validation . Constraint Ċ import Ġjavax . validation . Constraint Validator Ċ import Ġjavax . validation . Constraint Validator Context Ċ import Ġjavax . validation . Payload Ċ import Ġkotlin . annotation . Annotation Retention .* Ċ import Ġkotlin . annotation . Annotation Target .* Ċ 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 ĠP ix Ġinv Ã¡l ida Ġ(\ ${ validated Value . tipo Ch ave })", ĊĠĠĠ Ġval Ġgroups : ĠArray < K Class < Any >> Ġ= Ġ[], ĊĠĠĠ Ġval Ġpayload : ĠArray < K Class < out ĠPayload >> Ġ= Ġ[], Ċ ) ĊĊ Ċ @ Singleton Ċ class ĠValid Pix Key Validator Ġ: ĠConstraint Validator < Valid Pix Key , ĠN ova Ch ave Pix Request > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠisValid ( value : ĠN ova Ch ave Pix Request ?, Ġcontext : ĠConstraint Validator Context ): ĠBoolean Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( value ?. tipo Ch ave Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġvalid o Ġ= Ġvalue . tipo Ch ave . valid a ( value ?. valor Ch ave ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! valid o ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . disable Default Constraint Violation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Constraint Violation With Template ( context . default Constraint Message Template ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addProperty Node (" ch ave "). add Constraint Violation () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalid o ĊĠĠĠ Ġ} Ċ } Ċ