diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2016-12-01 15:42:44 -0800 |
---|---|---|
committer | Stewart Stewart <stewinsalot@gmail.com> | 2016-12-01 15:42:44 -0800 |
commit | a0d200c6b042f1c7669bdba11a7607476c16ecf4 (patch) | |
tree | 13dfb19ace419d8913c5e4ea9eaece12add3a1e3 /src/main/scala/NamespacedCodegen.scala | |
parent | 2b6f841cfc874809d8139992c869cb1ab456407c (diff) | |
download | slick-codegen-plugin-a0d200c6b042f1c7669bdba11a7607476c16ecf4.tar.gz slick-codegen-plugin-a0d200c6b042f1c7669bdba11a7607476c16ecf4.tar.bz2 slick-codegen-plugin-a0d200c6b042f1c7669bdba11a7607476c16ecf4.zip |
add parameter for type replacements (decouple driver Time)
Diffstat (limited to 'src/main/scala/NamespacedCodegen.scala')
-rw-r--r-- | src/main/scala/NamespacedCodegen.scala | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/main/scala/NamespacedCodegen.scala b/src/main/scala/NamespacedCodegen.scala index fb4910a..a3df345 100644 --- a/src/main/scala/NamespacedCodegen.scala +++ b/src/main/scala/NamespacedCodegen.scala @@ -25,7 +25,8 @@ object Generator { manualForeignKeys: Map[(String, String), (String, String)], schemaBaseClass: String, idType: Option[String], - schemaImports: List[String]) = { + schemaImports: List[String], + typeReplacements: Map[String, String]) = { val dc: DatabaseConfig[JdbcProfile] = DatabaseConfig.forURI[JdbcProfile](uri) val parsedSchemasOpt: Option[Map[String, List[String]]] = @@ -41,7 +42,8 @@ object Generator { manualForeignKeys, schemaBaseClass, idType, - schemaImports) + schemaImports, + typeReplacements) generator.code // Yes... Files are written as a side effect parsedSchemasOpt .getOrElse(Map()) @@ -96,7 +98,8 @@ class Generator(uri: URI, manualForeignKeys: Map[(String, String), (String, String)], schemaBaseClass: String, idType: Option[String], - schemaImports: List[String]) + schemaImports: List[String], + typeReplacements: Map[String, String]) extends SourceCodeGenerator(dbModel) with OutputHelpers { @@ -226,20 +229,14 @@ class Generator(uri: URI, s"$idTypeName[$schemaObjectName.$rowTypeName]" } - // re-write ids, and time types + // re-write ids other custom types override def rawType: String = { val (referencedTable, referencedColumn) = derefColumn(table.model, column.model) if (referencedColumn.options.contains( slick.ast.ColumnOption.PrimaryKey)) tableReferenceName(referencedTable.name) - else - model.tpe match { - // TODO: There should be a way to add adhoc custom time mappings - case "java.sql.Time" => "xyz.driver.core.time.Time" - case "java.sql.Timestamp" => "xyz.driver.core.time.Time" - case _ => super.rawType - } + else typeReplacements.getOrElse(model.tpe, model.tpe) } } |