/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠHERE ĠEurope ĠB . V . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* ĠLicense - Filename : ĠLICENSE Ċ Ġ*/ Ċ Ċ package Ġorg . oss review toolkit . helper . commands Ċ Ċ import Ġcom . be ust . j command er . J Command er Ċ import Ġcom . be ust . j command er . Parameter Ċ import Ġcom . be ust . j command er . Parameters Ċ Ċ import Ġorg . oss review toolkit . helper . Command With Help Ċ import Ġorg . oss review toolkit . helper . common . replace Path Exclude s Ċ import Ġorg . oss review toolkit . helper . common . sort Path Exclude s Ċ import Ġorg . oss review toolkit . helper . common . write As Yaml Ċ import Ġorg . oss review toolkit . model . Or t Result Ċ import Ġorg . oss review toolkit . model . config . Path Exclude Ċ import Ġorg . oss review toolkit . model . config . Path Exclude Reason Ċ import Ġorg . oss review toolkit . model . config . Repository Configuration Ċ import Ġorg . oss review toolkit . model . readValue Ċ import Ġorg . oss review toolkit . utils . PARAMETER _ ORDER _ M AND AT ORY Ċ Ċ import Ġjava . io . File Ċ Ċ @ Parameters ( ĊĠĠĠ Ġcommand Names Ġ= Ġ[" generate - project - exclude s "], ĊĠĠĠ Ġcommand Description Ġ= Ġ" Gener ates Ġpath Ġexclude s Ġfor Ġall Ġdefinition Ġfiles Ġwhich Ġare Ġnot Ġyet Ġexcluded ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġoutput Ġis Ġwritten Ġto Ġthe Ġgiven Ġrepository Ġconfiguration Ġfile ." Ċ ) Ċ internal Ġclass ĠGenerate Project Exclude s Command Ġ: ĠCommand With Help () Ġ{ ĊĠĠĠ Ġ@ Parameter ( ĊĠĠĠĠĠĠĠ Ġnames Ġ= Ġ[" -- ort - result - file "], ĊĠĠĠĠĠĠĠ Ġrequired Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġorder Ġ= ĠPARAMETER _ ORDER _ M AND AT ORY , ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" The Ġinput ĠOR T Ġfile Ġfrom Ġwhich Ġthe Ġprojects Ġand Ġrepository Ġconfiguration Ġare Ġread ." ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġort Result File : ĠFile ĊĊĠĠĠ Ġ@ Parameter ( ĊĠĠĠĠĠĠĠ Ġnames Ġ= Ġ[" -- repository - configuration - file "], ĊĠĠĠĠĠĠĠ Ġrequired Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġorder Ġ= ĠPARAMETER _ ORDER _ M AND AT ORY , ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" The Ġrepository Ġconfiguration Ġfile Ġto Ġwrite Ġthe Ġresult Ġto . ĠIf Ġthe Ġfile Ġdoes Ġalready Ġexist Ġit Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" overrides Ġthe Ġrepository Ġconfiguration Ġcontained Ġin Ġthe Ġgiven Ġinput ĠOR T Ġfile ." ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrepository Configuration File : ĠFile ĊĊĠĠĠ Ġoverride Ġfun Ġrun Command ( jc : ĠJ Command er ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Configuration Ġ= Ġif Ġ( repository Configuration File . isFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Configuration File . readValue () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRepository Configuration () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġort Result Ġ= Ġort Result File . readValue < Or t Result >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace Config ( repository Configuration ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgenerated Path Exclude s Ġ= Ġort Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Projects () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Not Ġ{ Ġort Result . is Excluded ( it . id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġproject Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPath Exclude ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Ġ= Ġort Result . get Definition FilePath Relative To Analyzer Root ( project ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Ġ= ĠPath Exclude Reason . OPTIONAL _ COMPONENT _ OF , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" TODO " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġexisting Path Exclude s Ġ= Ġrepository Configuration . exclude s . paths ĊĠĠĠĠĠĠĠ Ġval Ġpath Exclude s Ġ= Ġ( existing Path Exclude s Ġ+ Ġgenerated Path Exclude s ). distinct By Ġ{ Ġit . pattern Ġ} ĊĊĠĠĠĠĠĠĠ Ġrepository Configuration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace Path Exclude s ( path Exclude s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sort Path Exclude s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write As Yaml ( repository Configuration File ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ