From d15fb64eb584f79a90d96fde767588e6ef635bfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 25 Mar 2014 00:16:02 +0200 Subject: [PATCH] Unify name normalization #683 --- .../sql/codegen/AbstractNamingStrategy.java | 51 ++++++++++++++----- .../sql/codegen/DefaultNamingStrategy.java | 15 ------ .../query/sql/codegen/KeyDataFactory.java | 16 +++--- .../query/sql/codegen/MetaDataSerializer.java | 1 - .../sql/codegen/OriginalNamingStrategy.java | 15 ------ .../sql/codegen/MetaDataExporterTest.java | 4 ++ 6 files changed, 51 insertions(+), 51 deletions(-) diff --git a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/AbstractNamingStrategy.java b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/AbstractNamingStrategy.java index 16cab15d9b..5fd955f24b 100644 --- a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/AbstractNamingStrategy.java +++ b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/AbstractNamingStrategy.java @@ -1,6 +1,6 @@ /* * Copyright 2011, Mysema Ltd - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -18,22 +18,22 @@ /** * AbstractNamingStrategy is an abstract base class for NamingStrategy implementations - * + * * @author tiwe * */ public abstract class AbstractNamingStrategy implements NamingStrategy { - + protected String foreignKeysClassName = "ForeignKeys"; - + protected String foreignKeysVariable = "fk"; - + protected String primaryKeysClassName = "PrimaryKeys"; - + protected String primaryKeysVariable = "pk"; - + protected String reservedSuffix = "_col"; - + @Override public String appendSchema(String packageName, String schemaName) { String suffix = schemaName.toLowerCase(); @@ -42,7 +42,7 @@ public String appendSchema(String packageName, String schemaName) { } return packageName + "." + suffix; } - + protected String escape(EntityType entityType, String name) { int suffix = 0; while (true) { @@ -52,9 +52,9 @@ protected String escape(EntityType entityType, String name) { } else { return candidate; } - } + } } - + @Override public String getForeignKeysClassName() { return foreignKeysClassName; @@ -74,7 +74,34 @@ public String getPrimaryKeysClassName() { public String getPrimaryKeysVariable(EntityType entityType) { return primaryKeysVariable; } - + + @Override + public String normalizeColumnName(String columnName) { + if (columnName != null) { + return columnName.replaceAll("\r", "").replaceAll("\n", " "); + } else { + return null; + } + } + + @Override + public String normalizeTableName(String tableName) { + if (tableName != null) { + return tableName.replaceAll("\r", "").replaceAll("\n", " "); + } else { + return null; + } + } + + @Override + public String normalizeSchemaName(String schemaName) { + if (schemaName != null) { + return schemaName.replaceAll("\r", "").replaceAll("\n", " "); + } else { + return null; + } + } + public void setForeignKeysClassName(String foreignKeysClassName) { this.foreignKeysClassName = foreignKeysClassName; } diff --git a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/DefaultNamingStrategy.java b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/DefaultNamingStrategy.java index af36c1b291..5c9b9cb09c 100644 --- a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/DefaultNamingStrategy.java +++ b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/DefaultNamingStrategy.java @@ -93,21 +93,6 @@ public String getPropertyNameForPrimaryKey(String pkName, EntityType entityType) return getPropertyName(pkName, entityType); } - @Override - public String normalizeColumnName(String columnName) { - return columnName.replaceAll("\r", "").replaceAll("\n", " "); - } - - @Override - public String normalizeTableName(String tableName) { - return tableName.replaceAll("\r", "").replaceAll("\n", " "); - } - - @Override - public String normalizeSchemaName(String schemaName) { - return schemaName.replaceAll("\r", "").replaceAll("\n", " "); - } - protected String normalizePropertyName(String name) { return Naming.normalize(name, reservedSuffix); } diff --git a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/KeyDataFactory.java b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/KeyDataFactory.java index 1f28c08bfa..31d23b13b4 100644 --- a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/KeyDataFactory.java +++ b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/KeyDataFactory.java @@ -73,10 +73,10 @@ public Map getExportedKeys(DatabaseMetaData md, try{ while (foreignKeys.next()) { String name = foreignKeys.getString(FK_NAME); - String parentColumnName = foreignKeys.getString(FK_PARENT_COLUMN_NAME); - String foreignSchemaName = foreignKeys.getString(FK_FOREIGN_SCHEMA_NAME); - String foreignTableName = foreignKeys.getString(FK_FOREIGN_TABLE_NAME); - String foreignColumn = foreignKeys.getString(FK_FOREIGN_COLUMN_NAME); + String parentColumnName = namingStrategy.normalizeColumnName(foreignKeys.getString(FK_PARENT_COLUMN_NAME)); + String foreignSchemaName = namingStrategy.normalizeSchemaName(foreignKeys.getString(FK_FOREIGN_SCHEMA_NAME)); + String foreignTableName = namingStrategy.normalizeTableName(foreignKeys.getString(FK_FOREIGN_TABLE_NAME)); + String foreignColumn = namingStrategy.normalizeColumnName(foreignKeys.getString(FK_FOREIGN_COLUMN_NAME)); if (name == null || name.isEmpty()) { name = tableName + "_" + foreignTableName + "_IFK"; } @@ -102,10 +102,10 @@ public Map getImportedKeys(DatabaseMetaData md, try{ while (foreignKeys.next()) { String name = foreignKeys.getString(FK_NAME); - String parentSchemaName = foreignKeys.getString(FK_PARENT_SCHEMA_NAME); - String parentTableName = foreignKeys.getString(FK_PARENT_TABLE_NAME); - String parentColumnName = foreignKeys.getString(FK_PARENT_COLUMN_NAME); - String foreignColumn = foreignKeys.getString(FK_FOREIGN_COLUMN_NAME); + String parentSchemaName = namingStrategy.normalizeSchemaName(foreignKeys.getString(FK_PARENT_SCHEMA_NAME)); + String parentTableName = namingStrategy.normalizeTableName(foreignKeys.getString(FK_PARENT_TABLE_NAME)); + String parentColumnName = namingStrategy.normalizeColumnName(foreignKeys.getString(FK_PARENT_COLUMN_NAME)); + String foreignColumn = namingStrategy.normalizeColumnName(foreignKeys.getString(FK_FOREIGN_COLUMN_NAME)); if (name == null || name.isEmpty()) { name = tableName + "_" + parentTableName + "_FK"; } diff --git a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/MetaDataSerializer.java b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/MetaDataSerializer.java index 2e248cb3c2..53884d75c1 100644 --- a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/MetaDataSerializer.java +++ b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/MetaDataSerializer.java @@ -35,7 +35,6 @@ import com.mysema.codegen.model.Type; import com.mysema.codegen.model.TypeCategory; import com.mysema.codegen.model.Types; -import com.mysema.query.codegen.CodegenModule; import com.mysema.query.codegen.EntitySerializer; import com.mysema.query.codegen.EntityType; import com.mysema.query.codegen.Property; diff --git a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/OriginalNamingStrategy.java b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/OriginalNamingStrategy.java index 172895ec7b..dab998c5b1 100644 --- a/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/OriginalNamingStrategy.java +++ b/querydsl-sql-codegen/src/main/java/com/mysema/query/sql/codegen/OriginalNamingStrategy.java @@ -58,21 +58,6 @@ public String getPropertyNameForPrimaryKey(String primaryKeyName, EntityType mod return getPropertyName(primaryKeyName); } - @Override - public String normalizeColumnName(String columnName) { - return columnName.replaceAll("\r", "").replaceAll("\n", " "); - } - - @Override - public String normalizeTableName(String tableName) { - return tableName.replaceAll("\r", "").replaceAll("\n", " "); - } - - @Override - public String normalizeSchemaName(String schemaName) { - return schemaName.replaceAll("\r", "").replaceAll("\n", " "); - } - private String getPropertyName(String name) { return Naming.normalize(name, reservedSuffix); } diff --git a/querydsl-sql-codegen/src/test/java/com/mysema/query/sql/codegen/MetaDataExporterTest.java b/querydsl-sql-codegen/src/test/java/com/mysema/query/sql/codegen/MetaDataExporterTest.java index 793300cb10..2b81ae4140 100644 --- a/querydsl-sql-codegen/src/test/java/com/mysema/query/sql/codegen/MetaDataExporterTest.java +++ b/querydsl-sql-codegen/src/test/java/com/mysema/query/sql/codegen/MetaDataExporterTest.java @@ -115,6 +115,10 @@ public static void setUpClass() throws ClassNotFoundException, SQLException{ // multi key stmt.execute("create table multikey(id INT, id2 VARCHAR, id3 INT, CONSTRAINT pk_multikey PRIMARY KEY (id, id2, id3) )"); + // M_PRODUCT_BOM_ID + stmt.execute("create table product(id int, m_product_bom_id int, " + + "constraint product_bom foreign key (m_product_bom_id) references product(id))"); + }finally{ stmt.close(); }