diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2017-02-24 08:50:52 -0500 |
---|---|---|
committer | Stewart Stewart <stewinsalot@gmail.com> | 2017-02-24 08:50:52 -0500 |
commit | bb4be989a15f250741ab771e7ed78f512e74632d (patch) | |
tree | 9f7989c2ac182c77bcf7ed7ad21f7690c41fff0e | |
parent | 42f846add5a7b82f64a09f526d8817cb12b8ca86 (diff) | |
download | slick-codegen-plugin-bb4be989a15f250741ab771e7ed78f512e74632d.tar.gz slick-codegen-plugin-bb4be989a15f250741ab771e7ed78f512e74632d.tar.bz2 slick-codegen-plugin-bb4be989a15f250741ab771e7ed78f512e74632d.zip |
scalafmt
-rw-r--r-- | src/main/scala/Generators.scala | 34 | ||||
-rw-r--r-- | src/main/scala/NamespacedCodegen.scala | 20 | ||||
-rw-r--r-- | src/main/scala/OutputHelpers.scala | 44 | ||||
-rw-r--r-- | src/main/scala/TypedIdTable.scala | 12 |
4 files changed, 73 insertions, 37 deletions
diff --git a/src/main/scala/Generators.scala b/src/main/scala/Generators.scala index 741fe6b..51e02ce 100644 --- a/src/main/scala/Generators.scala +++ b/src/main/scala/Generators.scala @@ -2,21 +2,22 @@ import slick.codegen.SourceCodeGenerator import slick.{model => m} class RowSourceCodeGenerator( - model: m.Model, - override val headerComment: String, - override val imports: String, - override val schemaName: String, - fullDatabaseModel: m.Model, - idType: Option[String], - manualForeignKeys: Map[(String, String), (String, String)] + model: m.Model, + override val headerComment: String, + override val imports: String, + override val schemaName: String, + fullDatabaseModel: m.Model, + idType: Option[String], + manualForeignKeys: Map[(String, String), (String, String)] ) extends TypedIdSourceCodeGenerator( - fullDatabaseModel, - idType, - manualForeignKeys -) with RowOutputHelpers { + fullDatabaseModel, + idType, + manualForeignKeys + ) + with RowOutputHelpers { override def Table = new TypedIdTable(_) { table => - override def Column = new TypedIdColumn(_) { } + override def Column = new TypedIdColumn(_) {} override def EntityType = new EntityType { override def code: String = (if (classEnabled) "final " else "") + super.code @@ -39,9 +40,10 @@ class TableSourceCodeGenerator( parentType: Option[String], idType: Option[String], typeReplacements: Map[String, String]) - extends TypedIdSourceCodeGenerator(fullDatabaseModel, idType, manualForeignKeys) - with TableOutputHelpers -{ + extends TypedIdSourceCodeGenerator(fullDatabaseModel, + idType, + manualForeignKeys) + with TableOutputHelpers { val defaultIdImplementation = """|final case class Id[T](v: Int) @@ -94,7 +96,7 @@ class TableSourceCodeGenerator( } override def Column = new TypedIdColumn(_) { - override def rawType: String = { + override def rawType: String = { typeReplacements.getOrElse(model.tpe, super.rawType) } } diff --git a/src/main/scala/NamespacedCodegen.scala b/src/main/scala/NamespacedCodegen.scala index fd6ad3e..05b1c35 100644 --- a/src/main/scala/NamespacedCodegen.scala +++ b/src/main/scala/NamespacedCodegen.scala @@ -12,11 +12,21 @@ import slick.model.{Column, Model, Table, QualifiedName} object Generator { - def outputSchemaCode(schemaName: String, profile: String, folder: String, pkg: String, tableGen: TableFileGenerator, rowGen: RowFileGenerator): Unit = { + def outputSchemaCode(schemaName: String, + profile: String, + folder: String, + pkg: String, + tableGen: TableFileGenerator, + rowGen: RowFileGenerator): Unit = { val camelSchemaName = schemaName.split('_').map(_.capitalize).mkString("") - tableGen.writeTablesToFile(profile: String, folder: String, pkg: String, fileName = s"${camelSchemaName}Tables.scala") - rowGen.writeRowsToFile(folder: String, pkg: String, fileName = s"{camelSchemaName}Rows.scala") + tableGen.writeTablesToFile(profile: String, + folder: String, + pkg: String, + fileName = s"${camelSchemaName}Tables.scala") + rowGen.writeRowsToFile(folder: String, + pkg: String, + fileName = s"{camelSchemaName}Rows.scala") } def run(uri: URI, @@ -60,7 +70,7 @@ object Generator { idType, manualForeignKeys ) - /* + /* val tableGenerator: TableFileGenerator = ??? outputSchemaCode( @@ -70,7 +80,7 @@ object Generator { pkg = pkg, tableGen = tableGenerator, rowGen = rowGenerator) - */ + */ } } finally { dc.db.close() 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) } } diff --git a/src/main/scala/TypedIdTable.scala b/src/main/scala/TypedIdTable.scala index bcfc065..c7f0151 100644 --- a/src/main/scala/TypedIdTable.scala +++ b/src/main/scala/TypedIdTable.scala @@ -2,14 +2,13 @@ import slick.codegen.SourceCodeGenerator import slick.{model => m} class TypedIdSourceCodeGenerator( - model: m.Model, - idType: Option[String], - manualForeignKeys: Map[(String, String), (String, String)] + model: m.Model, + idType: Option[String], + manualForeignKeys: Map[(String, String), (String, String)] ) extends SourceCodeGenerator(model) { val manualReferences = SchemaParser.references(model, manualForeignKeys) - def derefColumn(table: m.Table, - column: m.Column): (m.Table, m.Column) = { + def derefColumn(table: m.Table, column: m.Column): (m.Table, m.Column) = { val referencedColumn: Seq[(m.Table, m.Column)] = table.foreignKeys .filter(tableFk => tableFk.referencingColumns.forall(_ == column)) @@ -25,7 +24,8 @@ class TypedIdSourceCodeGenerator( } class TypedIdTable(model: m.Table) extends Table(model) { table => - class TypedIdColumn(override val model: m.Column) extends Column(model) { column => + class TypedIdColumn(override val model: m.Column) extends Column(model) { + column => def tableReferenceName(tableName: m.QualifiedName) = { val schemaObjectName = tableName.schema.getOrElse("`public`") |