diff options
Diffstat (limited to 'src/main/scala/OutputHelpers.scala')
-rw-r--r-- | src/main/scala/OutputHelpers.scala | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/src/main/scala/OutputHelpers.scala b/src/main/scala/OutputHelpers.scala index 9e6dd0f..ce71a44 100644 --- a/src/main/scala/OutputHelpers.scala +++ b/src/main/scala/OutputHelpers.scala @@ -1,20 +1,28 @@ import slick.codegen.{SourceCodeGenerator, OutputHelpers} trait TableFileGenerator { self: SourceCodeGenerator => - def writeTablesToFile(profile: String, folder:String, pkg: String, fileName: String): Unit + def writeTablesToFile(profile: String, + folder: String, + pkg: String, + fileName: String): Unit } trait RowFileGenerator { self: SourceCodeGenerator => - def writeRowsToFile(folder:String, pkg: String, fileName: String): Unit + def writeRowsToFile(folder: String, pkg: String, fileName: String): Unit } -trait TableOutputHelpers extends TableFileGenerator with OutputHelpers { self: SourceCodeGenerator => +trait TableOutputHelpers extends TableFileGenerator with OutputHelpers { + self: SourceCodeGenerator => def headerComment: String def schemaName: String def imports: String - def packageTableCode(headerComment: String, pkg: String, schemaName: String, imports: String, profile: String): String = + def packageTableCode(headerComment: String, + pkg: String, + schemaName: String, + imports: String, + profile: String): String = s"""|${headerComment.trim().lines.map("// " + _).mkString("\n")} |package $pkg |package $schemaName @@ -33,18 +41,30 @@ trait TableOutputHelpers extends TableFileGenerator with OutputHelpers { self: S | ${indent(code)} | |""".stripMargin.trim() - def writeTablesToFile(profile: String, folder:String, pkg: String, fileName: String): Unit = { - writeStringToFile(content = packageTableCode(headerComment, pkg, schemaName, imports, profile), folder = folder, pkg = s"$pkg.$schemaName", fileName = fileName) + def writeTablesToFile(profile: String, + folder: String, + pkg: String, + fileName: String): Unit = { + writeStringToFile( + content = + packageTableCode(headerComment, pkg, schemaName, imports, profile), + folder = folder, + pkg = s"$pkg.$schemaName", + fileName = fileName) } } -trait RowOutputHelpers extends RowFileGenerator with OutputHelpers { self: SourceCodeGenerator => +trait RowOutputHelpers extends RowFileGenerator with OutputHelpers { + self: SourceCodeGenerator => def headerComment: String def schemaName: String def imports: String - def packageRowCode(headerComment: String, schemaName: String, pkg: String, imports: String): String = + def packageRowCode(headerComment: String, + schemaName: String, + pkg: String, + imports: String): String = s"""|${headerComment.trim().lines.map("// " + _).mkString("\n")} |/** Definitions for table rows types of database schema $schemaName */ |package $pkg @@ -55,8 +75,12 @@ trait RowOutputHelpers extends RowFileGenerator with OutputHelpers { self: Sourc |$code |""".stripMargin.trim() - def writeRowsToFile(folder:String, pkg: String, fileName: String): Unit = { + def writeRowsToFile(folder: String, pkg: String, fileName: String): Unit = { - writeStringToFile(content = packageRowCode(headerComment, schemaName, pkg, imports), folder = folder, pkg = s"$pkg.$schemaName", fileName = fileName) + writeStringToFile( + content = packageRowCode(headerComment, schemaName, pkg, imports), + folder = folder, + pkg = s"$pkg.$schemaName", + fileName = fileName) } } |