diff options
-rw-r--r-- | src/main/scala/CodegenPlugin.scala | 15 | ||||
-rw-r--r-- | src/main/scala/NamespacedCodegen.scala | 25 |
2 files changed, 19 insertions, 21 deletions
diff --git a/src/main/scala/CodegenPlugin.scala b/src/main/scala/CodegenPlugin.scala index 55d4089..0c8020f 100644 --- a/src/main/scala/CodegenPlugin.scala +++ b/src/main/scala/CodegenPlugin.scala @@ -67,13 +67,14 @@ object CodegenPlugin extends AutoPlugin { config.outputPackage, Some(config.schemaWhitelist).filter(_.nonEmpty), config.outputPath, - config.foreignKeys, - (if (codegenIdType.value.isEmpty) - codegenSchemaBaseClassParts.value :+ "DefaultIdTypeMapper" - else - codegenSchemaBaseClassParts.value) match { - case Nil => "AnyRef" - case parts => parts.mkString(" with ") + config.foreignKeys, { + val parts = + (if (codegenIdType.value.isEmpty) + codegenSchemaBaseClassParts.value :+ "DefaultIdTypeMapper" + else + codegenSchemaBaseClassParts.value) + + Some(parts).filter(_.nonEmpty).map(_.mkString(" with ")) }, codegenIdType.value, codegenSchemaImports.value, diff --git a/src/main/scala/NamespacedCodegen.scala b/src/main/scala/NamespacedCodegen.scala index 5487b41..52b4c62 100644 --- a/src/main/scala/NamespacedCodegen.scala +++ b/src/main/scala/NamespacedCodegen.scala @@ -23,7 +23,7 @@ object Generator { schemaNames: Option[List[String]], outputPath: String, manualForeignKeys: Map[(String, String), (String, String)], - schemaBaseClass: String, // TODO: Keep it optional? + parentType: Option[String], idType: Option[String], schemaImports: List[String], typeReplacements: Map[String, String]) = { @@ -49,21 +49,19 @@ object Generator { Some(Map(schemaName -> tables)))), Duration.Inf) - val generator = new Generator( - pkg, // still necessary - dbModel, - schemaName, // still necessary? - schemaOnlyModel, - manualForeignKeys, - schemaBaseClass, //still necessary if we use parentType below? - idType, - schemaImports, - typeReplacements) + val generator = new Generator(pkg, // still necessary + dbModel, + schemaName, // still necessary? + schemaOnlyModel, + manualForeignKeys, + idType, + schemaImports, + typeReplacements) generator.writeStringToFile(content = generator.packageCode( profile = profile, pkg = pkg, container = schemaName, - parentType = Some(schemaBaseClass)), + parentType = parentType), folder = outputPath, pkg = pkg, fileName = s"${schemaName}.scala") @@ -94,7 +92,6 @@ class Generator(pkg: String, schemaName: String, schemaOnlyModel: Model, manualForeignKeys: Map[(String, String), (String, String)], - schemaBaseClass: String, idType: Option[String], schemaImports: List[String], typeReplacements: Map[String, String]) @@ -121,7 +118,7 @@ class Generator(pkg: String, |$allImports |object ${container} extends { | val profile = $profile - |} with $schemaBaseClass { + |} with ${parentType.getOrElse("AnyRef")} { | import profile.api._ | ${code} |}""".stripMargin |