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

mb.pie.api.Pie.kt Maven / Gradle / Ivy

package mb.pie.api

import mb.pie.api.exec.BottomUpExecutor
import mb.pie.api.exec.TopDownExecutor
import mb.pie.api.fs.stamp.FileSystemStamper
import mb.pie.api.stamp.OutputStamper

/**
 * Facade for PIE.
 */
interface Pie : AutoCloseable {
  val topDownExecutor: TopDownExecutor
  val bottomUpExecutor: BottomUpExecutor

  fun dropStore()
}

/**
 * Builder for [PIE][Pie] facade.
 */
interface PieBuilder {
  fun withTaskDefs(taskDefs: TaskDefs): PieBuilder
  fun withResourceSystems(resourceSystems: ResourceSystems): PieBuilder
  fun withStore(store: (Logger) -> Store): PieBuilder
  fun withShare(share: (Logger) -> Share): PieBuilder
  fun withDefaultOutputStamper(stamper: OutputStamper): PieBuilder
  fun withDefaultRequireFileSystemStamper(stamper: FileSystemStamper): PieBuilder
  fun withDefaultProvideFileSystemStamper(stamper: FileSystemStamper): PieBuilder
  fun withLayer(layer: (Logger) -> Layer): PieBuilder
  fun withLogger(logger: Logger): PieBuilder
  fun withExecutorLogger(executorLogger: (Logger) -> ExecutorLogger): PieBuilder
  fun build(): Pie
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy