package Ġno . ss b . bar n . validation Ċ Ċ import Ġno . ss b . bar n . report . Report Entry Ċ import Ġno . ss b . bar n . report . Warning Level Ċ import Ġjava . util .* Ċ Ċ abstract Ġclass ĠAbstract Rule ( ĊĠĠĠ Ġprivate Ġval Ġwarning Level : ĠWarning Level , ĊĠĠĠ Ġprivate Ġval Ġrule Name : ĠString , ĊĠĠĠ Ġprivate Ġval Ġxml Context : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġvalidate ( context : ĠValidation Context ): ĠList < Report Entry >? ĊĊĠĠĠ Ġprotected Ġfun Ġcreate Single Report Entry List ( ĊĠĠĠĠĠĠĠ Ġerror Text : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext Id : ĠUUID ĊĠĠĠ Ġ): ĠList < Report Entry > Ġ= ĊĠĠĠĠĠĠĠ ĠlistOf ( create Report Entry ( error Text , Ġcontext Id )) ĊĊĠĠĠ Ġprotected Ġfun Ġcreate Report Entry ( ĊĠĠĠĠĠĠĠ Ġerror Text : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext Id : ĠUUID ĊĠĠĠ Ġ): ĠReport Entry Ġ= ĊĠĠĠĠĠĠĠ ĠReport Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwarning Level Ġ= Ġwarning Level , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrule Name Ġ= Ġrule Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Text Ġ= Ġerror Text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġxml Context . remove Suffix (" Type "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġcontext Id ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprotected Ġfun Ġcreate Report Entry ( ĊĠĠĠĠĠĠĠ Ġerror Text : ĠString ĊĠĠĠ Ġ): ĠReport Entry Ġ= ĊĠĠĠĠĠĠĠ ĠReport Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwarning Level Ġ= Ġwarning Level , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrule Name Ġ= Ġrule Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Text Ġ= Ġerror Text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġxml Context . remove Suffix (" Type "), ĊĠĠĠĠĠĠĠ Ġ) Ċ }