
arrow.generic.CoproductProcessor.kt Maven / Gradle / Ivy
package arrow.generic
import com.google.auto.service.AutoService
import arrow.common.utils.AbstractProcessor
import arrow.coproduct
import java.io.File
import javax.annotation.processing.Processor
import javax.annotation.processing.RoundEnvironment
import javax.lang.model.SourceVersion
import javax.lang.model.element.TypeElement
@AutoService(Processor::class)
class CoproductProcessor : AbstractProcessor() {
override fun getSupportedSourceVersion(): SourceVersion = SourceVersion.latestSupported()
override fun getSupportedAnnotationTypes(): Set = setOf(coproduct::class.java.canonicalName)
override fun onProcess(annotations: Set, roundEnv: RoundEnvironment) {
val generatedDir = File(this.generatedDir!!, "").also { it.mkdirs() }
generateCoproducts(generatedDir)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy