package Ġcom . very good security . vgs collect . view . card . validation . rules Ċ Ċ /** Ċ Ġ* ĠThis Ġrule Ġprovides Ġa Ġsimplified Ġmechanism Ġto Ġimprove Ġdefault Ġbehavior Ġof Ġfield Ġwhich Ġinclude Ġperson Ġname . Ċ Ġ*/ Ċ class ĠPerson Name Rule Ġprivate Ġconstructor ( ĊĠĠĠ Ġregex : ĠString ?, ĊĠĠĠ Ġlength : ĠArray < Int >? Ċ ) Ġ: ĠValidation Rule ( regex , Ġlength ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġclass Ġprovides Ġan ĠAPI Ġfor Ġset Ġup Ġrules Ġfor Ġvalidation Ġperson Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠValidation Builder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe ĠRegex Ġfor Ġvalidation Ġinput . Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġregex : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġminimum Ġlength Ġof Ġthe Ġperson Ġname Ġwhich Ġwill Ġsupport . Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmin Length Ġ= Ġ- 1 ĊĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġmaximum Ġlength Ġof Ġthe Ġperson Ġname Ġwhich Ġwill Ġsupport . Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠmaxLength Ġ= Ġ- 1 ĊĊĠĠĠĠĠĠĠ Ġ/** ĠConfigure ĠRegex Ġfor Ġvalidation Ġinput . Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Regex ( regex : ĠString ): ĠValidation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . regex Ġ= Ġregex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĠConfigure Ġminimum Ġlength Ġof Ġthe Ġname Ġwhich Ġwill Ġsupport . Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Allow able Min Length ( length : ĠInt ): ĠValidation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( maxLength Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength Ġ= Ġ 2 5 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length Ġ= Ġif Ġ( length Ġ> ĠmaxLength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlength ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĠConfigure Ġmaximum Ġlength Ġof Ġthe Ġname Ġwhich Ġwill Ġsupport . Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Allow able MaxLength ( length : ĠInt ): ĠValidation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Length Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( length Ġ< Ġmin Length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length Ġ= Ġlength ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength Ġ= Ġlength ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġrule . Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠPerson Name Rule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrange Ġ= Ġif Ġ( min Length Ġ!= Ġ- 1 Ġ&& ĠmaxLength Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( min Length .. maxLength ). toList (). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPerson Name Rule ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }