aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/OutputHelpers.scala
blob: f982124bdd5365c9d0ea6140d829c1946c350982 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"""|package $pkg
        |$imports
        |
        |// AUTO-GENERATED Slick data model
        |
        |/** 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()
  }
}