【发布时间】:2019-04-01 12:26:09
【问题描述】:
我需要在 jOOQ 生成的每个类的顶部和底部添加 // @formatter:on 和 // @formatter:off 注释。我创建了一个JavaGenerator 类,如下所示:
package ch.acme.backend.server.metamodel
import org.jooq.codegen.JavaGenerator
import org.jooq.codegen.JavaWriter
import org.jooq.meta.ArrayDefinition
import org.jooq.meta.EnumDefinition
import org.jooq.meta.PackageDefinition
import org.jooq.meta.RoutineDefinition
import org.jooq.meta.SchemaDefinition
import org.jooq.meta.TableDefinition
import org.jooq.meta.UDTDefinition
class NoFormatJavaGenerator : JavaGenerator() {
override fun generateRecordClassJavadoc(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateArrayClassJavadoc(arrayDefinition: ArrayDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateDaoClassJavadoc(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateEnumClassJavadoc(enum: EnumDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateInterfaceClassJavadoc(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generatePackageClassJavadoc(pkg: PackageDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generatePojoClassJavadoc(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateRoutineClassJavadoc(routine: RoutineDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateSchemaClassJavadoc(schema: SchemaDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateTableClassJavadoc(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateUDTClassJavadoc(udt: UDTDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateUDTRecordClassJavadoc(udt: UDTDefinition, out: JavaWriter) {
out.println("// @formatter:off")
}
override fun generateRecordClassFooter(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateArrayClassFooter(arrayDefinition: ArrayDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateDaoClassFooter(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateEnumClassFooter(enum: EnumDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateInterfaceClassFooter(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generatePackageClassFooter(pkg: PackageDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generatePojoClassFooter(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateRoutineClassFooter(routine: RoutineDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateSchemaClassFooter(schema: SchemaDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateTableClassFooter(table: TableDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateUDTClassFooter(udt: UDTDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
override fun generateUDTRecordClassFooter(udt: UDTDefinition, out: JavaWriter) {
out.println("// @formatter:on")
}
}
这适用于大多数文件,但“DefaultCatalog”、“Indexes”、“Keys”、“Public”和“Tables”不受此影响。我怎样才能添加这些呢?
【问题讨论】:
-
是否可以进行后处理步骤,您只需使用这些“注释”修补生成的 Java 代码?似乎是最务实的方法。
-
好的,这看起来确实更容易。谢谢!