/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 - 2 0 2 1 ĠB os ch . IO ĠGmbH Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 . reporter . report ers . fre emark er . asci id oc Ċ Ċ import Ġjava . io . File Ċ Ċ import Ġkotlin . io . path . create Temp Directory Ċ Ċ import Ġorg . asci ido ctor . Asc i ido ctor Ċ import Ġorg . asci ido ctor . Attributes Ċ import Ġorg . asci ido ctor . Options Ċ import Ġorg . asci ido ctor . Safe Mode Ċ Ċ import Ġorg . oss review toolkit . reporter . Reporter Ċ import Ġorg . oss review toolkit . reporter . Reporter Input Ċ import Ġorg . oss review toolkit . reporter . report ers . fre emark er . F reem ark er Template Processor Ċ import Ġorg . oss review toolkit . utils . common . safe Delete Re cursively Ċ import Ġorg . oss review toolkit . utils . core . ORT _ NAME Ċ Ċ /** Ċ Ġ* ĠAn Ġabstract Ġ[ Reporter ] Ġthat Ġuses Ġ[ Apache ĠF reem ark er ][ 1 ] Ġtemplates Ġand Ġ[ Ascii Doc ][ 2 ] Ġwith Ġ[ Asc i ido ctor J ][ 3 ] Ġto Ġcreate Ċ Ġ* Ġreports Ġfor Ġthe Ġsupported Ġ[ Ascii Doc Ġconverter s ][ 4 ], Ġusing Ġthe Ġspecified ĠA sci ido ctor Ġ[ backend ]. Ċ Ġ* Ċ Ġ* Ġ[ 1 ]: Ġhttps :// fre emark er . apache . org Ċ Ġ* Ġ[ 2 ]: Ġhttps :// asci id oc . org Ċ Ġ* Ġ[ 3 ]: Ġhttps :// github . com / asci ido ctor / asci ido ctor j Ċ Ġ* Ġ[ 4 ]: Ġhttps :// docs . asci ido ctor . org / asci ido ctor / latest / convert / available Ċ Ġ*/ Ċ abstract Ġclass ĠAsc ii Doc Template Reporter ( private Ġval Ġbackend : ĠString , Ġoverride Ġval Ġreporter Name : ĠString ) Ġ: ĠReport er Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠASCII _ DOC _ FILE _ PREFIX Ġ= Ġ" Ascii Doc _" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠASCII _ DOC _ FILE _ EXTENSION Ġ= Ġ" adoc " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠASCII _ DOC _ TEMPLATE _ DIRECTORY Ġ= Ġ" asci id oc " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDIS CLO S URE _ TEMPLATE _ ID Ġ= Ġ" dis closure _ document " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠV UL NER ABILITY _ TEMPLATE _ ID Ġ= Ġ" v ulnerability _ report " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtemplate Processor Ġ= ĠF reem ark er Template Processor ( ĊĠĠĠĠĠĠĠ ĠASCII _ DOC _ FILE _ PREFIX , ĊĠĠĠĠĠĠĠ ĠASCII _ DOC _ FILE _ EXTENSION , ĊĠĠĠĠĠĠĠ ĠASCII _ DOC _ TEMPLATE _ DIRECTORY ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġasci ido ctor Ġ= ĠA sci ido ctor . Factory . create () ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġprocess Template Options ( options : ĠMutable Map < String , ĠString >): ĠAttributes Ġ= ĊĠĠĠĠĠĠĠ ĠAttributes . builder (). build () ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġgenerate Report ( input : ĠReport er Input , Ġoutput Dir : ĠFile , Ġoptions : ĠMap < String , ĠString >): ĠList < File > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġascii Doc Output Dir Ġ= Ġcreate Temp Directory ("$ ORT _ NAME - asci id oc "). to File () ĊĊĠĠĠĠĠĠĠ Ġval Ġtemplate Options Ġ= Ġoptions . to Mutable Map () ĊĠĠĠĠĠĠĠ Ġval Ġasci ido ctor Attributes Ġ= Ġprocess Template Options ( template Options ) ĊĠĠĠĠĠĠĠ Ġval Ġascii Doc Files Ġ= Ġgenerate Ascii Doc Files ( input , Ġascii Doc Output Dir , Ġtemplate Options ) ĊĠĠĠĠĠĠĠ Ġval Ġreports Ġ= Ġprocess Ascii Doc Files ( output Dir , Ġascii Doc Files , Ġasci ido ctor Attributes ) ĊĊĠĠĠĠĠĠĠ Ġascii Doc Output Dir . safe Delete Re cursively () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġreports ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate Ġthe ĠAsc ii Doc Ġfiles Ġfrom Ġthe Ġtemplates Ġdefined Ġin Ġ[ options ] Ġin Ġ[ output Dir ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġgenerate Ascii Doc Files ( ĊĠĠĠĠĠĠĠ Ġinput : ĠReport er Input , ĊĠĠĠĠĠĠĠ Ġoutput Dir : ĠFile , ĊĠĠĠĠĠĠĠ Ġoptions : ĠMap < String , ĠString > Ġ= Ġempty Map () ĊĠĠĠ Ġ): ĠList < File > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Options Ġ= Ġoptions . to Mutable Map () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( F reem ark er Template Processor . OPTION _ TEMPLATE _ PATH Ġ! in Ġtemplate Options ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Options . put If Absent ( F reem ark er Template Processor . OPTION _ TEMPLATE _ ID , Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( DIS CLO S URE _ TEMPLATE _ ID ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input . ort Result . get Ad visor Results (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (", $ V UL NER ABILITY _ TEMPLATE _ ID ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtemplate Processor . process Templates ( input , Ġoutput Dir , Ġtemplate Options ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate Ġthe Ġreports Ġfor Ġthe Ġ[ ascii Doc Files ] Ġusing ĠA sci ido ctor Ġin Ġ[ output Dir ] Ġapplying Ġthe ĊĠĠĠĠ Ġ* Ġ[ asci ido ctor Attributes ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġprocess Ascii Doc Files ( ĊĠĠĠĠĠĠĠ Ġoutput Dir : ĠFile , ĊĠĠĠĠĠĠĠ Ġascii Doc Files : ĠList < File >, ĊĠĠĠĠĠĠĠ Ġasci ido ctor Attributes : ĠAttributes ĊĠĠĠ Ġ): ĠList < File > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Builder Ġ= ĠOptions . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. attributes ( asci ido ctor Attributes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. backend ( backend ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. safe ( Safe Mode . UN SAFE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput Files Ġ= Ġmutable ListOf < File >() ĊĊĠĠĠĠĠĠĠ Ġascii Doc Files . forEach Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoutputFile Ġ= Ġoutput Dir . resolve ("${ file . name Without Extension }. $ backend ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġasci ido ctor . convert File ( file , Ġoptions Builder . to File ( outputFile ). build ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Files Ġ+= ĠoutputFile ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġoutput Files ĊĠĠĠ Ġ} Ċ } Ċ