package Ġbr . com . tor res math . key . manager . annotations Ċ Ċ import Ġbr . com . tor res math . key . manager . KeyType Ċ import Ġbr . com . tor res math . key . manager . pix . model . Pix Key Ċ import Ġbr . com . tor res math . key . manager . pix . model . Pix Key Status Ċ import Ġio . mic ronaut . validation . validator . Validator Ċ import Ġorg . hibernate . validator . constraints . br . CP F Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ import Ġjavax . validation . Constraint Ċ import Ġjavax . validation . Constraint Validator Ċ import Ġjavax . validation . Constraint Validator Context Ċ import Ġjavax . validation . Payload Ċ import Ġjavax . validation . constraints . Email Ċ import Ġjavax . validation . constraints . NotBlank Ċ import Ġkotlin . reflect . K Class Ċ Ċ @ Must Be Document ed Ċ @ Target ( Annotation Target . CLASS ) Ċ @ Retention ( Annotation Retention . RUNTIME ) Ċ @ Constraint ( validated By Ġ= Ġ[ Valid Key Identifier Validator :: class ]) Ċ annotation Ġclass ĠValid Key Identifier ( ĊĠĠĠ Ġval Ġmessage : ĠString Ġ= Ġ" Invalid Ġpix Ġkey Ġidentifier Ġfor Ġprovided Ġpix Ġkey Ġtype ", ĊĠĠĠ Ġval Ġgroups : ĠArray < K Class < Any >> Ġ= Ġ[], ĊĠĠĠ Ġval Ġpayload : ĠArray < K Class < Payload >> Ġ= Ġ[] Ċ ) Ċ Ċ @ Singleton Ċ class ĠValid Key Identifier Validator Ġ: ĠConstraint Validator < Valid Key Identifier , ĠP ix Key > Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġvalidator : ĠValidator ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( value : ĠP ix Key ?, Ġcontext : ĠConstraint Validator Context ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( value . key Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey Type . RANDOM Ġ-> Ġvalid Random ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey Type . MOB ILE _ NUMBER Ġ-> Ġ"^ \\ + [ 1 - 9 ][ 0 - 9 ]\\ d { 1 , 1 4 }\ $ ". to Regex (). matches ( value . key Identifier ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey Type . CP F Ġ-> Ġvalidator . validate ( Valid CP F ( value . key Identifier )). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey Type . EMAIL Ġ-> Ġvalidator . validate ( Valid Email ( value . key Identifier )). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalid Random ( value : ĠP ix Key ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( value . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP ix Key Status . ACTIVE Ġ-> Ġkotlin . run Catch ing Ġ{ ĠUUID . fromString ( value . key Identifier ) Ġ}. is Success ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvalue . key Identifier . isBlank () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠValid CP F (@ field : NotBlank Ġ@ field : CP F Ġval Ġidentifier : ĠString ) ĊĠĠĠ Ġprivate Ġclass ĠValid Email (@ field : NotBlank Ġ@ field : Email Ġval Ġidentifier : ĠString ) Ċ Ċ } Ċ