com.jeppeman.globallydynamic.gradle.generators.Generator.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plugin Show documentation
Show all versions of plugin Show documentation
GloballyDynamic - Gradle plugin to facilitate for local dynamic delivery for Android.
package com.jeppeman.globallydynamic.gradle.generators
import com.squareup.javapoet.FieldSpec
import com.squareup.javapoet.JavaFile
import com.squareup.javapoet.MethodSpec
import com.squareup.javapoet.TypeSpec
import java.io.File
import javax.lang.model.element.Modifier
internal abstract class Generator(private val outputFile: File) {
abstract val typeSpec: TypeSpec
protected fun FieldSpec.asGetter(name: String = this.name): MethodSpec =
MethodSpec.methodBuilder("get${name.capitalize()}")
.addModifiers(Modifier.PUBLIC)
.addStatement("return \$L", this.name)
.returns(type)
.build()
fun generate() {
JavaFile.builder(TypeNames.PACKAGE_NAME, typeSpec)
.addFileComment("Generated by GloballyDynamic, do not modify")
.build()
.writeTo(outputFile)
}
}