package Ġcom . github . vh rom ada . book case . validator Ċ Ċ import Ġcom . github . vh rom ada . book case . entity . Author Ċ import Ġcom . github . vh rom ada . common . result . Event Ċ import Ġcom . github . vh rom ada . common . result . Result Ċ import Ġcom . github . vh rom ada . common . result . Severity Ċ import Ġcom . github . vh rom ada . common . validator . Abstract Validator Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ /** Ċ Ġ* ĠA Ġclass Ġrepresents Ġvalidator Ġfor Ġauthor . Ċ Ġ* Ċ Ġ* Ġ@ author ĠV lad im ir ĠH rom ada Ċ Ġ*/ Ċ @ Component (" author Validator ") Ċ class ĠAuthor Validator Ġ: ĠAbstract Validator < Author , Ġcom . github . vh rom ada . book case . domain . Author >( name Ġ= Ġ" Author ") Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValid ates Ġauthor Ġdee ply . ĊĠĠĠĠ Ġ* Ġ< br ></ br > ĊĠĠĠĠ Ġ* ĠValidation Ġerrors : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* ĠFirst Ġname Ġis Ġnull ĊĠĠĠĠ Ġ* Ġ Ġ* ĠFirst Ġname Ġis Ġempty Ġstring ĊĠĠĠĠ Ġ* Ġ Ġ* ĠMiddle Ġname Ġis Ġnull ĊĠĠĠĠ Ġ* Ġ Ġ* ĠLast Ġname Ġis Ġnull ĊĠĠĠĠ Ġ* Ġ Ġ* ĠLast Ġname Ġis Ġempty Ġstring ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĠĠ Ġvalidating Ġauthor ĊĠĠĠĠ Ġ* Ġ@ param Ġresult Ġresult Ġwith Ġvalidation Ġerrors ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġvalidate Data Deep ( data : ĠAuthor , Ġresult : ĠResult < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . firstName Ġ== Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Event ( event Ġ= ĠEvent ( severity Ġ= ĠSeverity . ERROR , Ġkey Ġ= Ġ" AUTHOR _ FIRST _ NAME _ NULL ", Ġmessage Ġ= Ġ" First Ġname Ġmust n 't Ġbe Ġnull .")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . firstName . isBlank () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Event ( event Ġ= ĠEvent ( severity Ġ= ĠSeverity . ERROR , Ġkey Ġ= Ġ" AUTHOR _ FIRST _ NAME _ EMPTY ", Ġmessage Ġ= Ġ" First Ġname Ġmust n 't Ġbe Ġempty Ġstring .")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( data . middle Name Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Event ( event Ġ= ĠEvent ( severity Ġ= ĠSeverity . ERROR , Ġkey Ġ= Ġ" AUTHOR _ MIDDLE _ NAME _ NULL ", Ġmessage Ġ= Ġ" Middle Ġname Ġmust n 't Ġbe Ġnull .")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . lastName Ġ== Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Event ( event Ġ= ĠEvent ( severity Ġ= ĠSeverity . ERROR , Ġkey Ġ= Ġ" AUTHOR _ LAST _ NAME _ NULL ", Ġmessage Ġ= Ġ" Last Ġname Ġmust n 't Ġbe Ġnull .")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . lastName . isBlank () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add Event ( event Ġ= ĠEvent ( severity Ġ= ĠSeverity . ERROR , Ġkey Ġ= Ġ" AUTHOR _ LAST _ NAME _ EMPTY ", Ġmessage Ġ= Ġ" Last Ġname Ġmust n 't Ġbe Ġempty Ġstring .")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ