/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠHERE ĠEurope ĠB . V . Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠB os ch . IO ĠGmbH Ċ Ġ* Ċ Ġ* Ġ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 . scanner . experimental Ċ Ċ import Ġjava . io . File Ċ Ċ import Ġorg . oss review toolkit . model . Known Provenance Ċ import Ġorg . oss review toolkit . model . Package Ċ import Ġorg . oss review toolkit . model . Provenance Ċ import Ġorg . oss review toolkit . model . Scan Result Ċ import Ġorg . oss review toolkit . model . Scan Summary Ċ import Ġorg . oss review toolkit . model . Scanner Details Ċ import Ġorg . oss review toolkit . model . config . Scanner Configuration Ċ import Ġorg . oss review toolkit . model . config . Scanner Options Ċ import Ġorg . oss review toolkit . scanner . Scanner Criteria Ċ Ċ /** Ċ Ġ* ĠThe Ġbase Ġinterface Ġfor Ġall Ġtypes Ġof Ġsc anners . Ċ Ġ*/ Ċ sealed Ġinterface ĠScanner Wrapper Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġname Ġof Ġthe Ġscanner . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġdetails Ġof Ġthe Ġscanner . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdetails : ĠScanner Details ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġ[ Scanner Criteria ] Ġobject Ġto Ġbe Ġused Ġwhen Ġlooking Ġup Ġexisting Ġscan Ġresults Ġfrom Ġa Ġscan Ġstorage . ĠBy Ġdefault , ĊĠĠĠĠ Ġ* Ġthe Ġproperties Ġof Ġthis Ġobject Ġare Ġinitialized Ġby Ġthe Ġscanner Ġimplementation . ĠThese Ġdefaults Ġcan Ġbe Ġoverridden ĊĠĠĠĠ Ġ* Ġwith Ġthe Ġ[ Scanner Configuration . options ] Ġproperty : ĠUse Ġproperties Ġof Ġthe Ġform Ġ_ scanner Name . criteria . property _, ĊĠĠĠĠ Ġ* Ġwhere Ġ_ scanner Name _ Ġis Ġthe Ġname Ġof Ġthe Ġscanner Ġand Ġ_ property _ Ġis Ġthe Ġname Ġof Ġa Ġproperty Ġof Ġthe Ġ[ Scanner Criteria ] ĊĠĠĠĠ Ġ* Ġclass . ĠFor Ġinstance , Ġto Ġspecify Ġthat Ġa Ġspecific Ġminimum Ġversion Ġof ĠScan Code Ġis Ġallowed , Ġset Ġthis Ġproperty : ĊĠĠĠĠ Ġ* Ġ` options . Scan Code . criteria . min Scanner Version = 3 . 0 . 2 `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthis Ġproperty Ġis Ġnull Ġit Ġmeans Ġthat Ġthe Ġresults Ġof Ġthis Ġ[ Scanner Wrapper ] Ġcannot Ġbe Ġstored Ġin Ġa Ġscan Ġstorage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcriteria : ĠScanner Criteria ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFilter Ġthe Ġscanner Ġspecific Ġoptions Ġto Ġremove Ġany Ġsecrets , Ġlike Ġcredentials . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfilter Secret Options ( options : ĠScanner Options ) Ġ= Ġoptions Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġinterface Ġfor Ġremote Ġsc anners . ĠA Ġremote Ġscanner Ġis Ġa Ġscanner Ġthat Ġis Ġnot Ġexecuted Ġlocally Ġbut Ġis Ġrunning Ġon Ċ Ġ* Ġa Ġdifferent Ġmachine Ġand Ġcan Ġbe Ġaccessed Ġvia Ġa Ġremote Ġinterface . Ċ Ġ*/ Ċ sealed Ġinterface ĠRemote Scanner Wrapper Ġ: ĠScanner Wrapper Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġinterface Ġfor Ġremote Ġsc anners Ġthat Ġoperate Ġon Ġ[ Package ] s . Ċ Ġ*/ Ċ interface ĠPackage Based Remote Scanner Wrapper Ġ: ĠRemote Scanner Wrapper Ġ{ ĊĠĠĠ Ġfun Ġscan Package ( pkg : ĠPackage , Ġcontext : ĠScan Context ): ĠScan Result Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġinterface Ġfor Ġremote Ġsc anners Ġthat Ġoperate Ġon Ġ[ Provenance ] s . Ċ Ġ*/ Ċ interface ĠPro venance Based Remote Scanner Wrapper Ġ: ĠRemote Scanner Wrapper Ġ{ ĊĠĠĠ Ġfun Ġscan Provenance ( pro venance : ĠKnown Provenance , Ġcontext : ĠScan Context ): ĠScan Result Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġinterface Ġfor Ġlocal Ġsc anners . ĠA Ġlocal Ġscanner Ġis Ġa Ġscanner Ġthat Ġis Ġrunning Ġon Ġthe Ġsame Ġmachine Ġand Ġscanning Ċ Ġ* Ġfiles Ġon Ġthe Ġlocal Ġfilesystem . Ċ Ġ*/ Ċ interface ĠLocal Scanner Wrapper Ġ: ĠScanner Wrapper Ġ{ ĊĠĠĠ Ġfun Ġscan Path ( path : ĠFile , Ġcontext : ĠScan Context ): ĠScan Summary Ċ } Ċ