package Ġcom . com merc et ools . rm f . validators Ċ Ċ import Ġio . v rap . rm f . nodes . antlr . Node Token Ċ import Ġio . v rap . rm f . r aml . model . modules . Type Container Ċ import Ġio . v rap . rm f . r aml . model . types . Any Type Ċ import Ġio . v rap . rm f . r aml . persistence . antlr . R AML Parser Ċ import Ġio . v rap . rm f . r aml . persistence . constructor . R aml Parser Adapter Ċ import Ġorg . antlr . v 4 . runtime . ParserRuleContext Ċ import Ġorg . antlr . v 4 . runtime . tree . Terminal Node Ċ import Ġorg . eclipse . emf . common . util . Diagnostic Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠFilename Rule ( severity : ĠRule Severity , Ġoptions : ĠList < Rule Option >? Ġ= Ġnull ) Ġ: ĠModules Rule ( severity , Ġoptions ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġexclude : ĠList < String > Ġ= ĊĠĠĠĠĠĠĠ Ġ( options ?. filter Ġ{ Ġrule Option Ġ-> Ġrule Option . type . lowercase ( Locale . getDefault ()) Ġ== ĠRule Option Type . EXCL UDE . toString () Ġ} ?. map Ġ{ Ġrule Option Ġ-> Ġrule Option . value Ġ} ?. plus ("") Ġ?: Ġdefault Exclude s ) ĊĊĠĠĠ Ġoverride Ġfun Ġcase Type Container ( container : ĠType Container ): ĠList < Diagnostic > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalidation Results : ĠMutable List < Diagnostic > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( container . types Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . types ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Not Ġ{ Ġexclude . contains ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġit ?. e Adapters ()?. filter Is Instance ( R aml Parser Adapter :: class . java )?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ-> Ġcheck Included Type FileName ( it , Ġadapter . parser RuleContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r . contains ( true ). not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidation Results . add ( create ( it , Ġ" Type Ġ\" { 0 }\" Ġmust Ġhave Ġthe Ġsame Ġfile Ġname Ġas Ġtype Ġitself ", Ġit . name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalidation Results ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Included Type FileName ( type : ĠAny Type , Ġcontext : ĠParser RuleContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠR AML Parser . Type Declaration Map Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcontext . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Index Ġ= Ġcontext . children . indexOf ( context . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Node Ġ= Ġcontext . children . get OrNull ( id Index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next Node Ġis ĠTerminal Node Ġ&& Ġ( next Node . symbol Ġas ĠNode Token ). location Ġ!= Ġ( id . start Ġas ĠNode Token ). location ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( next Node . symbol Ġas ĠNode Token ). location . contains ( type . name Ġ+ Ġ". r aml ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠValidator Factory < Filename Rule > Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Exclude s Ġby Ġlazy Ġ{ ĠlistOf ("") Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate ( options : ĠList < Rule Option >? ): ĠFilename Rule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFilename Rule ( Rule Severity . ERROR , Ġoptions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate ( severity : ĠRule Severity , Ġoptions : ĠList < Rule Option >? ): ĠFilename Rule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFilename Rule ( severity , Ġoptions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ