com.autonomousapps.AbstractExtension.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dependency-analysis-gradle-plugin Show documentation
Show all versions of dependency-analysis-gradle-plugin Show documentation
Analyzes dependency usage in Android and JVM projects
@file:Suppress("UnstableApiUsage", "unused")
package com.autonomousapps
import com.autonomousapps.extension.IssueHandler
import org.gradle.api.Action
import org.gradle.api.file.RegularFile
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import org.gradle.kotlin.dsl.newInstance
@Suppress("MemberVisibilityCanBePrivate")
abstract class AbstractExtension(private val objects: ObjectFactory) {
internal abstract val issueHandler: IssueHandler
private val adviceOutput = objects.fileProperty()
internal fun storeAdviceOutput(provider: Provider) {
val output = objects.fileProperty().also {
it.set(provider)
}
adviceOutput.set(output)
}
/**
* Returns the output from the project-level holistic advice, produced by the
* [AdviceSubprojectAggregationTask][com.autonomousapps.tasks.AdviceSubprojectAggregationTask].
* This output is a [com.autonomousapps.advice.ComprehensiveAdvice]
*
* Never null, but may _contain_ a null value. Use with [RegularFileProperty.getOrNull].
*/
fun adviceOutput(): RegularFileProperty {
return adviceOutput
}
internal var postProcessingTask: TaskProvider? = null
/**
* Register your custom task that post-processes the [com.autonomousapps.advice.ComprehensiveAdvice]
* produced by this project.
*/
fun registerPostProcessingTask(task: TaskProvider) {
postProcessingTask = task
postProcessingTask.configure {
input.set(adviceOutput())
}
}
}