diff options
Diffstat (limited to 'src/main/scala/TypedIdTable.scala')
-rw-r--r-- | src/main/scala/TypedIdTable.scala | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/src/main/scala/TypedIdTable.scala b/src/main/scala/TypedIdTable.scala index ad62032..ead4a49 100644 --- a/src/main/scala/TypedIdTable.scala +++ b/src/main/scala/TypedIdTable.scala @@ -2,19 +2,19 @@ import slick.codegen.SourceCodeGenerator import slick.{model => m} class TypedIdSourceCodeGenerator( - singleSchemaModel: m.Model, - databaseModel: m.Model, - idType: Option[String], - manualForeignKeys: Map[(String, String), (String, String)] + singleSchemaModel: m.Model, + databaseModel: m.Model, + idType: Option[String], + manualForeignKeys: Map[(String, String), (String, String)] ) extends SourceCodeGenerator(singleSchemaModel) { val manualReferences = ModelTransformation.references(databaseModel, manualForeignKeys) val modelTypeToColumnMaper = Map( "java.util.UUID" -> "uuidKeyMapper", - "String" -> "naturalKeyMapper", - "Int" -> "serialKeyMapper", - "Long" -> "serialKeyMapper" + "String" -> "naturalKeyMapper", + "Int" -> "serialKeyMapper", + "Long" -> "serialKeyMapper" ) val keyReferences: Map[m.Column, m.Column] = { @@ -26,18 +26,15 @@ class TypedIdSourceCodeGenerator( val fks: Seq[(m.Column, m.Column)] = databaseModel.tables .flatMap(_.foreignKeys) .filter(_.referencedColumns.length == 1) - .filter(_.referencedColumns.forall( - _.options.contains(slick.ast.ColumnOption.PrimaryKey))) - .flatMap(fk => - fk.referencingColumns.flatMap(from => - fk.referencedColumns.headOption.map(to => (from -> to)))) + .filter(_.referencedColumns.forall(_.options.contains(slick.ast.ColumnOption.PrimaryKey))) + .flatMap(fk => fk.referencingColumns.flatMap(from => fk.referencedColumns.headOption.map(to => (from -> to)))) (pks ++ fks).toMap } def pKeyTypeTag(columnRef: m.Column): String = { val schemaName = columnRef.table.schema.getOrElse("`public`") - val tableName = entityName(columnRef.table.table) + val tableName = entityName(columnRef.table.table) s"$schemaName.$tableName" } @@ -47,11 +44,7 @@ class TypedIdSourceCodeGenerator( class TypedIdTable(model: m.Table) extends Table(model) { table => override def definitions = - Seq[Def](EntityType, - PlainSqlMapper, - TableClass, - TableValue, - PrimaryKeyMapper) + Seq[Def](EntityType, PlainSqlMapper, TableClass, TableValue, PrimaryKeyMapper) class TypedIdColumn(override val model: m.Column) extends Column(model) { override def rawType: String = { @@ -80,9 +73,8 @@ class TypedIdSourceCodeGenerator( override def code = primaryKeyColumn.fold("") { column => val tpe = s"BaseColumnType[${column.rawType}]" - s"""|implicit def $name: $tpe = - |${modelTypeToColumnMaper(column.model.tpe)}[${pKeyTypeTag( - column.model)}] + s"""|implicit def $name: $tpe = + |${modelTypeToColumnMaper(column.model.tpe)}[${pKeyTypeTag(column.model)}] |""".stripMargin.lines.mkString("").trim } } |