All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.danielsomerfield.cvecheck.gradle.CVECheckExtension.groovy Maven / Gradle / Ivy

package com.danielsomerfield.cvecheck.gradle
import com.danielsomerfield.cvecheck.ScanResultHandler
import com.danielsomerfield.cvecheck.gradle.handlers.BuildRulesScanResultHandler
import com.danielsomerfield.cvecheck.gradle.handlers.buildRules.BuildRule
import com.danielsomerfield.cvecheck.gradle.handlers.buildRules.BuildRuleBuilder
import com.danielsomerfield.cvecheck.gradle.handlers.buildRules.BuildRules
import com.danielsomerfield.cvecheck.gradle.handlers.buildRules.ListBackedBuildRules

class CVECheckExtension {

  private final BuildRuleBuilder buildRuleBuilder
  private final BuildRules buildRules
  private final ReportConfiguration reportConfiguration

  /* Configuration properties */
  CVECheckExtension(
      final BuildRuleBuilder buildRuleBuilder,
      final List defaultBuildRules,
      final ReportConfiguration reportConfiguration
  ) {
    this.buildRuleBuilder = buildRuleBuilder
    this.buildRules = new ListBackedBuildRules(defaultBuildRules)
    this.reportConfiguration = reportConfiguration
  }
  public long refreshAfter = 86400 /** Seconds **/
  private ScanResultHandler scanResultHandler

  def ScanResultHandler getScanResultHandler(){
    if (this.scanResultHandler == null) {
      this.scanResultHandler = new BuildRulesScanResultHandler(buildRules)
    }
  }

  def void setScanResultHandler(ScanResultHandler scanResultHandler) {
    this.scanResultHandler = scanResultHandler
  }

  def buildRule(Closure ruleConfigClosure) {
    ruleConfigClosure.resolveStrategy = Closure.DELEGATE_FIRST
    ruleConfigClosure.delegate = buildRuleBuilder
    ruleConfigClosure()
    buildRules.addBuildRule(buildRuleBuilder.create().value)
  }

  public reporting(Closure reportingConfigClosure) {
    reportingConfigClosure.resolveStrategy = Closure.DELEGATE_FIRST
    reportingConfigClosure.delegate = reportConfiguration
    reportingConfigClosure()
  }

  public BuildRules getBuildRules() {
    buildRules
  }

  public String getReportOutputPath() {
    reportConfiguration.outputPath
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy