package Ġio . gitlab . art urb os ch . de te kt . core Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Config Ċ import Ġio . gitlab . art urb os ch . de te kt . api . File Process Listener Ċ import Ġjava . util . Service Loader Ċ Ċ class ĠFile Processor Locator ( private Ġval Ġsettings : ĠProcessing Settings ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġconfig : ĠConfig Ġ= Ġsettings . config ĊĠĠĠ Ġprivate Ġval Ġsub Config Ġ= Ġconfig . sub Config (" processors ") ĊĠĠĠ Ġprivate Ġval Ġprocessors Active Ġ= Ġsub Config . value OrDefault (" active ", Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġexclude s Ġ= Ġsub Config . value OrDefault (" exclude ", Ġempty List < String >()) ĊĊĠĠĠ Ġfun Ġload (): ĠList < File Process Listener > Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( processors Active ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠService Loader . load ( File Process Listener :: class . java , Ġsettings . plugin Loader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . id Ġ! in Ġexclude s Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ Ġit . init ( config ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ