aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/OutputHelpers.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/OutputHelpers.scala')
-rw-r--r--src/main/scala/OutputHelpers.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/scala/OutputHelpers.scala b/src/main/scala/OutputHelpers.scala
new file mode 100644
index 0000000..ce22f2a
--- /dev/null
+++ b/src/main/scala/OutputHelpers.scala
@@ -0,0 +1,28 @@
+trait OutputHelpers extends slick.codegen.OutputHelpers {
+
+ def imports: String
+
+ def headerComment: String = ""
+
+ override def packageCode(profile: String,
+ pkg: String,
+ container: String,
+ parentType: Option[String]): String = {
+ val traitName = container.capitalize + "SchemaDef"
+ s"""|${headerComment.trim().lines.map("// " + _).mkString("\n")}
+ |package $pkg
+ |
+ |$imports
+ |
+ |/** Stand-alone Slick data model for immediate use */
+ |object $container extends {
+ | val profile = $profile
+ |} with $traitName
+ |
+ |/** Slick data model trait for extension, choice of backend or usage in the cake pattern. (Make sure to initialize this late.) */
+ |trait $traitName${parentType.fold("")(" extends " + _)} {
+ | import profile.api._
+ | ${indent(code)}
+ |}""".stripMargin.trim()
+ }
+}