/** Ċ Ġ* Ċ Ġ* Ġ@ author Ġtang li Ċ Ġ* Ġ@ since Ġ 2 0 2 1 - 0 5 - 1 9 Ġ 1 0 : 5 8 Ċ Ġ*/ Ċ package Ġcom . ton y . core . enums . validate Ċ Ċ import Ġcom . ton y . core . enums . Enum Creator Ċ import Ġcom . ton y . core . enums . EnumValue Ċ import Ġjavax . validation . Constraint Validator Ċ import Ġjavax . validation . Constraint Validator Context Ċ Ċ class ĠSimple Int Enum Validator Ġ: ĠConstraint Validator < Simple Int Enum , ĠEnum Value < Int > ?> Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġenums Ġ= Ġint ArrayOf () ĊĠĠĠ Ġprivate Ġvar Ġrequired Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġinitialize ( constraint Annotation : ĠSimple Int Enum ) Ġ{ ĊĠĠĠĠĠĠĠ Ġenums Ġ= Ġconstraint Annotation . enums ĊĠĠĠĠĠĠĠ Ġrequired Ġ= Ġconstraint Annotation . required ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( str : ĠEnum Value < Int > ?, Ġconstraint Validator Context : ĠConstraint Validator Context ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġstr ?. value Ġ?: Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== ĠEnum Creator . default Int Value Ġ&& Ġrequired ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue Ġin Ġenums ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSimple String Enum Validator Ġ: ĠConstraint Validator < Simple String Enum , ĠEnum Value < String > ?> Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġenums : ĠArray < out ĠString > ĊĠĠĠ Ġprivate Ġvar Ġrequired Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġinitialize ( constraint Annotation : ĠSimple String Enum ) Ġ{ ĊĠĠĠĠĠĠĠ Ġenums Ġ= Ġconstraint Annotation . enums ĊĠĠĠĠĠĠĠ Ġrequired Ġ= Ġconstraint Annotation . required ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( str : ĠEnum Value < String > ?, Ġconstraint Validator Context : ĠConstraint Validator Context ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġstr ?. value Ġ?: Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== ĠEnum Creator . default StringValue Ġ&& Ġrequired ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue Ġin Ġenums ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSimple Enum Validator Ġ: ĠConstraint Validator < Simple Enum , ĠAny ?> Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġenums : ĠArray < out ĠString > ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize ( constraint Annotation : ĠSimple Enum ) Ġ{ ĊĠĠĠĠĠĠĠ Ġenums Ġ= Ġconstraint Annotation . enums ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠisValid ( str : ĠAny ?, Ġconstraint Validator Context : ĠConstraint Validator Context ) Ġ= ĊĠĠĠĠĠĠĠ Ġnull Ġ== Ġstr Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr . toString (). isBlank () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr . toString () Ġin Ġenums Ċ } Ċ