package Ġno . ss b . bar n . validation . rule Ċ Ċ import Ġno . ss b . bar n . validation . Abstract Rule Ċ import Ġno . ss b . bar n . validation . Validation Context Ċ import Ġno . ss b . bar n . report . Report Entry Ċ import Ġno . ss b . bar n . report . Warning Level Ċ import Ġno . ss b . bar n . xsd . T ilt ak Type Ċ Ċ class ĠMeasure EndDate After StartDate Ġ: ĠAbstract Rule ( ĊĠĠĠ ĠWarning Level . ERROR , ĊĠĠĠ Ġ" T ilt ak ĠKont roll Ġ 2 a : ĠStart dat o Ġet ter Ġsl ut td ato ", ĊĠĠĠ ĠT ilt ak Type :: class . java . simple Name Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġvalidate ( context : ĠValidation Context ): ĠList < Report Entry >? Ġ= ĊĠĠĠĠĠĠĠ Ġcontext . root Object . sak . vir ks om het . as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġvir ks om het Ġ-> Ġvir ks om het . tilt ak Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġt ilt ak Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcon clusion Ġ= Ġt ilt ak . kon kl us jon Ġ// Ġwhen ĠJ a Co Co Ġimproves , Ġuse Ġ"? ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon clusion Ġ!= Ġnull Ġ&& Ġcon clusion . sl utt D ato . is Before ( tilt ak . start D ato ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Report Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" T ilt ak Ġ(${ it . id }} ). ĠStart dat o Ġ(${ it . start D ato })" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Ġfor Ġt ilt aket Ġer Ġet ter Ġsl ut td ato " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Ġ(${ it . kon kl us jon !!. sl utt D ato }) Ġfor Ġt ilt aket " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. if Empty Ġ{ Ġnull Ġ} Ċ }