package Ġcom . github . dar der ion . m und ane assignment pol ice . checker . rule . symbol Ċ Ċ import Ġcom . github . dar der ion . m und ane assignment pol ice . checker . Rule Violation Ċ import Ġcom . github . dar der ion . m und ane assignment pol ice . checker . Rule Violation Type Ċ import Ġcom . github . dar der ion . m und ane assignment pol ice . checker . rule . Rule Ċ import Ġcom . github . dar der ion . m und ane assignment pol ice . pdf document . PDF Document Ċ import Ġcom . github . dar der ion . m und ane assignment pol ice . pdf document . PDF Region Ċ import Ġcom . github . dar der ion . m und ane assignment pol ice . pdf document . inside Ċ Ċ abstract Ġclass ĠSymbol Rule ( Ċ ĉ val Ġsymbol : ĠChar , Ċ ĉ type : ĠRule Violation Type , Ċ ĉ area : ĠPDF Region , Ċ ĉ name : ĠString Ċ ): ĠRule ( area , Ġname , Ġtype ) Ġ{ Ċ ĉ abstract Ġfun Ġis Vi olated ( document : ĠPDF Document , Ġline : ĠInt , Ġindex : ĠInt ): ĠBoolean ĊĊ ĉ override Ġfun Ġprocess ( document : ĠPDF Document ): ĠList < Rule Violation > Ġ{ Ċĉ ĉ val Ġrules Vi olations : ĠMutable List < Rule Violation > Ġ= Ġmutable ListOf () ĊĊĉ ĉ document . text . filter Ġ{ Ġit . area !! Ġinside Ġarea Ġ}. forEach Indexed Ġ{ Ġline Index , Ġpdf Text Ġ-> Ċĉĉ ĉ // val Ġpdf Text Ġ= Ġdocument . text . filter Ġ{ Ġit . area !! Ġinside Ġarea Ġ} [ line Index ] Ċĉĉ ĉ pdf Text . content . indices Of ( symbol . toString ()). forEach Ġ{ Ċĉĉĉ ĉ if Ġ( is Vi olated ( document , Ġline Index , Ġit )) Ġ{ Ċĉĉĉĉ ĉ rules Vi olations . add ( Rule Violation ( listOf ( pdf Text ), Ġname , Ġtype )) Ċĉĉĉ ĉ } Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĉ ĉ return Ġrules Vi olations Ċ ĉ } Ċ }