/** Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 ĠMe h di ĠJan bar ari Ġ(@ jan bar ari ) Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNON - INFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġio . github . jan bar ari . gradle . analytics . scanner . execution Ċ Ċ import Ġio . github . jan bar ari . gradle . analytics . Gradle Analytics Plugin Config . Database Config Ċ import Ġio . github . jan bar ari . gradle . analytics . data . Database Repository Imp Ċ import Ġio . github . jan bar ari . gradle . analytics . data . database . Database Ċ import Ġio . github . jan bar ari . gradle . analytics . domain . repository . Database Repository Ċ import Ġio . github . jan bar ari . gradle . analytics . domain . use case . Save Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . domain . use case . Save Temporary Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . initialization . Update Initialization Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . Exclude J aco co Generated Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . configuration . Create Configuration Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . configuration . Update Configuration Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . execution . Create Execution Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . execution . Update Execution Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . initialization . Create Initialization Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . total build . Create Total Build Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . analytics . metric . total build . Update Total Build Metric UseCase Ċ import Ġio . github . jan bar ari . gradle . extension . ensure NotNull Ċ import Ġio . github . jan bar ari . gradle . extension . separate Elements With Space Ċ Ċ /** Ċ Ġ* ĠCustom Ġdependency Ġinjector Ġfor Ġ[ Build Execution Logic ]. Ċ Ġ*/ Ċ Ċ @ Exclude J aco co Generated Ċ data Ġclass ĠBuild Execution Injector ( ĊĠĠĠ Ġvar Ġdatabase Config : ĠDatabase Config ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġis CI : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġbranch : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġrequested Tasks : ĠList < String >? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġtracking Branches : ĠList < String >? Ġ= Ġnull , ĊĠĠĠ Ġvar Ġtracking Tasks : ĠList < String >? Ġ= Ġnull Ċ ) Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Database (): ĠDatabase Ġ{ ĊĠĠĠ Ġreturn ĠDatabase ( ensure NotNull ( database Config ), Ġensure NotNull ( is CI )) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Database Repository (): ĠDatabase Repository Ġ{ ĊĠĠĠ Ġreturn ĠDatabase Repository Imp ( ĊĠĠĠĠĠĠĠ Ġprovide Database (), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( branch ), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( requested Tasks ). separate Elements With Space () ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Update Initialization Metric UseCase (): ĠUpdate Initialization Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠUpdate Initialization Metric UseCase ( provide Database Repository ()) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Update Configuration Metric UseCase (): ĠUpdate Configuration Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠUpdate Configuration Metric UseCase ( provide Database Repository ()) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Update Execution Metric UseCase (): ĠUpdate Execution Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠUpdate Execution Metric UseCase ( provide Database Repository ()) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Update Total Build Metric UseCase (): ĠUpdate Total Build Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠUpdate Total Build Metric UseCase ( provide Database Repository ()) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Save Metric UseCase (): ĠSave Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠSave Metric UseCase ( ĊĠĠĠĠĠĠĠ Ġprovide Database Repository (), ĊĠĠĠĠĠĠĠ Ġprovide Update Initialization Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Update Configuration Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Update Execution Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Update Total Build Metric UseCase () ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Save Temporary Metric UseCase (): ĠSave Temporary Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠSave Temporary Metric UseCase ( provide Database Repository ()) Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Initialization Metric UseCase (): ĠCreate Initialization Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠCreate Initialization Metric UseCase () Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Configuration Metric UseCase (): ĠCreate Configuration Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠCreate Configuration Metric UseCase () Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Execution Metric UseCase (): ĠCreate Execution Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠCreate Execution Metric UseCase () Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Total Build Metric UseCase (): ĠCreate Total Build Metric UseCase Ġ{ ĊĠĠĠ Ġreturn ĠCreate Total Build Metric UseCase () Ċ } Ċ Ċ @ Exclude J aco co Generated Ċ fun ĠBuild Execution Injector . provide Build Execution Logic (): ĠBuild Execution Logic Ġ{ ĊĠĠĠ Ġreturn ĠBuild Execution Logic Imp ( ĊĠĠĠĠĠĠĠ Ġprovide Save Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Save Temporary Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Initialization Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Configuration Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Execution Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġprovide Total Build Metric UseCase (), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( database Config ), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( is CI ), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( tracking Branches ), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( tracking Tasks ), ĊĠĠĠĠĠĠĠ Ġensure NotNull ( requested Tasks ) ĊĠĠĠ Ġ) Ċ } Ċ