You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/10/02 18:44:39 UTC
cayenne git commit: CAY-2116 Split schema synchronization code in a
separate module
Repository: cayenne
Updated Branches:
refs/heads/master 38e4e7fda -> 413c72045
CAY-2116 Split schema synchronization code in a separate module
Refactoring:
* gathering all naming services under a single package
* better method names and javadocs for ObjectNameGenerator
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/413c7204
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/413c7204
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/413c7204
Branch: refs/heads/master
Commit: 413c720457f60275296e1834736a542e97b76b49
Parents: 38e4e7f
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Sun Oct 2 16:04:12 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Sun Oct 2 21:40:50 2016 +0300
----------------------------------------------------------------------
.../dbsync/merge/CreateTableToModel.java | 18 ++--
.../dbsync/merge/EntityMergeSupport.java | 8 +-
.../cayenne/dbsync/merge/MergerContext.java | 4 +-
.../naming/DefaultObjectNameGenerator.java | 94 ++++++++++++++++++++
.../naming/LegacyObjectNameGenerator.java | 58 ++++++++++++
.../dbsync/naming/ObjectNameGenerator.java | 54 +++++++++++
.../cayenne/dbsync/reverse/db/DbLoader.java | 12 +--
.../reverse/db/ManyToManyCandidateEntity.java | 4 +-
.../naming/DefaultObjectNameGenerator.java | 94 --------------------
.../naming/LegacyObjectNameGenerator.java | 58 ------------
.../reverse/naming/ObjectNameGenerator.java | 53 -----------
.../dbsync/merge/EntityMergeSupportIT.java | 2 +-
.../naming/DefaultObjectNameGeneratorTest.java | 61 +++++++++++++
.../naming/LegacyObjectNameGeneratorTest.java | 55 ++++++++++++
.../db/ManyToManyCandidateEntityTest.java | 2 +-
.../naming/DefaultObjectNameGeneratorTest.java | 60 -------------
.../naming/LegacyObjectNameGeneratorTest.java | 54 -----------
.../apache/cayenne/tools/DbImporterTask.java | 2 +-
.../tools/dbimport/DbImportConfiguration.java | 4 +-
.../tools/dbimport/DefaultDbImportAction.java | 2 +-
.../dbimport/DefaultDbImportActionTest.java | 2 +-
.../modeler/action/CreateObjEntityAction.java | 4 +-
.../InferRelationshipsController.java | 2 +-
.../InferRelationshipsControllerBase.java | 4 +-
.../dialog/objentity/EntitySyncController.java | 2 +-
.../dialog/objentity/ObjRelationshipInfo.java | 4 +-
.../modeler/util/NameGeneratorPreferences.java | 6 +-
27 files changed, 362 insertions(+), 361 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/CreateTableToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/CreateTableToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/CreateTableToModel.java
index ba93d2c..b57a6dd 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/CreateTableToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/CreateTableToModel.java
@@ -20,7 +20,7 @@ package org.apache.cayenne.dbsync.merge;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.dbsync.naming.NameBuilder;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
@@ -60,22 +60,20 @@ public class CreateTableToModel extends AbstractToModelToken.Entity {
map.addDbEntity(dbEntity);
// create a ObjEntity
-
- // TODO: name generator must be injected...
- // TODO: should we use DbEntity name as a basis instead of generic name like "ObjEntity1"?
- String baseName = new DefaultObjectNameGenerator().createObjEntityName(dbEntity);
-
ObjEntity objEntity = new ObjEntity();
- String name = NameBuilder.builder(objEntity, dbEntity.getDataMap()).baseName(baseName).name();
- objEntity.setName(name);
+ objEntity.setName(NameBuilder
+ .builder(objEntity, dbEntity.getDataMap())
+ // TODO: name generator must be injected...
+ .baseName(new DefaultObjectNameGenerator().objEntityName(dbEntity))
+ .name());
objEntity.setDbEntity(getEntity());
// try to find a class name for the ObjEntity
String className = objEntityClassName;
if (className == null) {
- // we should generate a className based on the objEntityName
- className = map.getNameWithDefaultPackage(name);
+ // generate a className based on the objEntityName
+ className = map.getNameWithDefaultPackage(objEntity.getName());
}
objEntity.setClassName(className);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
index e3692b0..11f2ac4 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/EntityMergeSupport.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.dbsync.merge;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.dbsync.naming.NameBuilder;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -200,7 +200,7 @@ public class EntityMergeSupport {
private boolean createObjRelationship(ObjEntity entity, DbRelationship dr, String targetEntityName) {
ObjRelationship or = new ObjRelationship();
or.setName(NameBuilder.builder(or, entity)
- .baseName(nameGenerator.createObjRelationshipName(dr))
+ .baseName(nameGenerator.objRelationshipName(dr))
.name());
or.addDbRelationship(dr);
@@ -264,7 +264,7 @@ public class EntityMergeSupport {
if (dbRelationship.getTargetEntityName() != null) {
boolean needGeneratedEntity = createObjRelationship(entity, dbRelationship,
- nameGenerator.createObjEntityName(targetEntity));
+ nameGenerator.objEntityName(targetEntity));
if (needGeneratedEntity) {
LOG.warn("Can't find ObjEntity for " + dbRelationship.getTargetEntityName());
LOG.warn("Db Relationship (" + dbRelationship + ") will have GUESSED Obj Relationship reflection. ");
@@ -276,7 +276,7 @@ public class EntityMergeSupport {
private void addMissingAttribute(ObjEntity entity, DbAttribute da) {
ObjAttribute oa = new ObjAttribute();
oa.setName(NameBuilder.builder(oa, entity)
- .baseName(nameGenerator.createObjAttributeName(da))
+ .baseName(nameGenerator.objAttributeName(da))
.name());
oa.setEntity(entity);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
index 3605e10..77f9e61 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerContext.java
@@ -20,8 +20,8 @@ package org.apache.cayenne.dbsync.merge;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.validation.ValidationResult;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGenerator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGenerator.java
new file mode 100644
index 0000000..a201325
--- /dev/null
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGenerator.java
@@ -0,0 +1,94 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.dbsync.naming;
+
+import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.util.Util;
+import org.jvnet.inflector.Noun;
+
+import java.util.Locale;
+
+/**
+ * A strategy for generating names of entities, attributes etc.
+ *
+ * @since 4.0
+ */
+public class DefaultObjectNameGenerator implements ObjectNameGenerator {
+
+ @Override
+ public String dbRelationshipName(ExportedKey key, boolean toMany) {
+
+ String name;
+
+ if (toMany) {
+ try {
+ /**
+ * by default we use english language rules here. uppercase is
+ * required for NameConverter to work properly
+ */
+ name = Noun.pluralOf(key.getFKTableName().toLowerCase(), Locale.ENGLISH).toUpperCase();
+ } catch (Exception inflectorError) {
+ /**
+ * seems that Inflector cannot be trusted. For instance, it
+ * throws an exception when invoked for word "ADDRESS" (although
+ * lower case works fine). To feel safe, we use superclass'
+ * behavior if something's gone wrong
+ */
+ return key.getFKTableName().toLowerCase();
+ }
+ } else {
+ String fkColName = key.getFKColumnName();
+
+ // trim "ID" in the end
+ if (fkColName == null) {
+ name = key.getPKTableName();
+ } else if (fkColName.toUpperCase().endsWith("_ID") && fkColName.length() > 3) {
+ name = fkColName.substring(0, fkColName.length() - 3);
+ } else if (fkColName.toUpperCase().endsWith("ID") && fkColName.length() > 2) {
+ name = fkColName.substring(0, fkColName.length() - 2);
+ } else {
+ /**
+ * We don't want relationship to conflict with attribute, so
+ * we'd better return superior value with 'to'
+ */
+ name = key.getPKTableName();
+ }
+ }
+
+ return Util.underscoredToJava(name, false);
+ }
+
+ @Override
+ public String objEntityName(DbEntity dbEntity) {
+ return Util.underscoredToJava(dbEntity.getName(), true);
+ }
+
+ @Override
+ public String objAttributeName(DbAttribute attr) {
+ return Util.underscoredToJava(attr.getName(), false);
+ }
+
+ @Override
+ public String objRelationshipName(DbRelationship dbRel) {
+ return Util.underscoredToJava(dbRel.getName(), false);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGenerator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGenerator.java
new file mode 100644
index 0000000..430fbbc
--- /dev/null
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGenerator.java
@@ -0,0 +1,58 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.dbsync.naming;
+
+import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.util.Util;
+
+/**
+ * An ObjectNameGenerator that creates names in Cayenne's old-fashioned style. I.e. the same way Cayenne did before 3.0,
+ * with "to" prefixes and "array" suffixes.
+ *
+ * @since 4.0
+ */
+public class LegacyObjectNameGenerator implements ObjectNameGenerator {
+
+ @Override
+ public String dbRelationshipName(
+ ExportedKey key,
+ boolean toMany) {
+
+ String uglyName = (toMany) ? key.getFKTableName() + "_ARRAY" : "to_" + key.getPKTableName();
+ return Util.underscoredToJava(uglyName, false);
+ }
+
+ @Override
+ public String objEntityName(DbEntity dbEntity) {
+ return Util.underscoredToJava(dbEntity.getName(), true);
+ }
+
+ @Override
+ public String objAttributeName(DbAttribute attr) {
+ return Util.underscoredToJava(attr.getName(), false);
+ }
+
+ @Override
+ public String objRelationshipName(DbRelationship dbRel) {
+ return Util.underscoredToJava(dbRel.getName(), false);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/ObjectNameGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/ObjectNameGenerator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/ObjectNameGenerator.java
new file mode 100644
index 0000000..0383c8e
--- /dev/null
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/naming/ObjectNameGenerator.java
@@ -0,0 +1,54 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.dbsync.naming;
+
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
+
+/**
+ * A strategy for creating names for object layer metadata artifacts based on their DB counterpart naming. Generated
+ * names should normally be further cleaned by passing them through {@link org.apache.cayenne.dbsync.naming.NameBuilder},
+ * that will resolve duplication conflicts.
+ *
+ * @since 4.0
+ */
+public interface ObjectNameGenerator {
+
+ /**
+ * Generates a name for ObjEntity derived from DbEntity name.
+ */
+ String objEntityName(DbEntity dbEntity);
+
+ /**
+ * Generates a name for ObjAttribute derived from DbAttribute name.
+ */
+ String objAttributeName(DbAttribute dbAttribute);
+
+ /**
+ * Generates a name for DbRelationship derived from the DB foreign key name.
+ */
+ String dbRelationshipName(ExportedKey key, boolean toMany);
+
+ /**
+ * Generates a name for ObjRelationship derived from DbRelationship name.
+ */
+ String objRelationshipName(DbRelationship dbRelationship);
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
index ecdfa70..888d6d4 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/DbLoader.java
@@ -26,8 +26,8 @@ import org.apache.cayenne.dbsync.reverse.filters.CatalogFilter;
import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig;
import org.apache.cayenne.dbsync.reverse.filters.SchemaFilter;
import org.apache.cayenne.dbsync.reverse.filters.TableFilter;
-import org.apache.cayenne.dbsync.reverse.naming.LegacyObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.LegacyObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -134,7 +134,7 @@ public class DbLoader {
ObjEntity objEntity = new ObjEntity();
objEntity.setName(NameBuilder
.builder(objEntity, map)
- .baseName(nameGenerator.createObjEntityName(dbEntity))
+ .baseName(nameGenerator.objEntityName(dbEntity))
.name());
objEntity.setDbEntity(dbEntity);
@@ -318,7 +318,7 @@ public class DbLoader {
DbRelationship forwardRelationship = new DbRelationship();
forwardRelationship.setName(NameBuilder
.builder(forwardRelationship, pkEntity)
- .baseName(nameGenerator.createDbRelationshipName(key, true))
+ .baseName(nameGenerator.dbRelationshipName(key, true))
.name());
forwardRelationship.setSourceEntity(pkEntity);
@@ -332,7 +332,7 @@ public class DbLoader {
DbRelationshipDetected reverseRelationship = new DbRelationshipDetected();
reverseRelationship.setName(NameBuilder
.builder(reverseRelationship, fkEntity)
- .baseName(nameGenerator.createDbRelationshipName(key, false))
+ .baseName(nameGenerator.dbRelationshipName(key, false))
.name());
reverseRelationship.setFkName(key.getFKName());
@@ -353,7 +353,7 @@ public class DbLoader {
// TODO: can we avoid resetting the name twice? Do we need a placeholder name above?
forwardRelationship.setName(NameBuilder
.builder(forwardRelationship, pkEntity)
- .baseName(nameGenerator.createDbRelationshipName(key, !isOneToOne))
+ .baseName(nameGenerator.dbRelationshipName(key, !isOneToOne))
.name());
if (delegate.dbRelationshipLoaded(fkEntity, reverseRelationship)) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntity.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntity.java
index 7f2f815..f93c7cf 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntity.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntity.java
@@ -19,7 +19,7 @@
package org.apache.cayenne.dbsync.reverse.db;
import org.apache.cayenne.dbsync.naming.NameBuilder;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
@@ -114,7 +114,7 @@ class ManyToManyCandidateEntity {
ObjRelationship newRelationship = new ObjRelationship();
newRelationship.setName(NameBuilder
.builder(newRelationship, srcEntity)
- .baseName(nameGenerator.createDbRelationshipName(key, true))
+ .baseName(nameGenerator.dbRelationshipName(key, true))
.name());
newRelationship.setSourceEntity(srcEntity);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGenerator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGenerator.java
deleted file mode 100644
index a2d2264..0000000
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGenerator.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.dbsync.reverse.naming;
-
-import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.util.Util;
-import org.jvnet.inflector.Noun;
-
-import java.util.Locale;
-
-/**
- * A strategy for generating names of entities, attributes etc.
- *
- * @since 4.0
- */
-public class DefaultObjectNameGenerator implements ObjectNameGenerator {
-
- @Override
- public String createDbRelationshipName(ExportedKey key, boolean toMany) {
-
- String name;
-
- if (toMany) {
- try {
- /**
- * by default we use english language rules here. uppercase is
- * required for NameConverter to work properly
- */
- name = Noun.pluralOf(key.getFKTableName().toLowerCase(), Locale.ENGLISH).toUpperCase();
- } catch (Exception inflectorError) {
- /**
- * seems that Inflector cannot be trusted. For instance, it
- * throws an exception when invoked for word "ADDRESS" (although
- * lower case works fine). To feel safe, we use superclass'
- * behavior if something's gone wrong
- */
- return key.getFKTableName().toLowerCase();
- }
- } else {
- String fkColName = key.getFKColumnName();
-
- // trim "ID" in the end
- if (fkColName == null) {
- name = key.getPKTableName();
- } else if (fkColName.toUpperCase().endsWith("_ID") && fkColName.length() > 3) {
- name = fkColName.substring(0, fkColName.length() - 3);
- } else if (fkColName.toUpperCase().endsWith("ID") && fkColName.length() > 2) {
- name = fkColName.substring(0, fkColName.length() - 2);
- } else {
- /**
- * We don't want relationship to conflict with attribute, so
- * we'd better return superior value with 'to'
- */
- name = key.getPKTableName();
- }
- }
-
- return Util.underscoredToJava(name, false);
- }
-
- @Override
- public String createObjEntityName(DbEntity dbEntity) {
- return Util.underscoredToJava(dbEntity.getName(), true);
- }
-
- @Override
- public String createObjAttributeName(DbAttribute attr) {
- return Util.underscoredToJava(attr.getName(), false);
- }
-
- @Override
- public String createObjRelationshipName(DbRelationship dbRel) {
- return Util.underscoredToJava(dbRel.getName(), false);
- }
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGenerator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGenerator.java
deleted file mode 100644
index 986b192..0000000
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGenerator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.dbsync.reverse.naming;
-
-import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.util.Util;
-
-/**
- * An ObjectNameGenerator that creates names in Cayenne's old-fashioned style. I.e. the same way Cayenne did before 3.0,
- * with "to" prefixes and "array" suffixes.
- *
- * @since 4.0
- */
-public class LegacyObjectNameGenerator implements ObjectNameGenerator {
-
- @Override
- public String createDbRelationshipName(
- ExportedKey key,
- boolean toMany) {
-
- String uglyName = (toMany) ? key.getFKTableName() + "_ARRAY" : "to_" + key.getPKTableName();
- return Util.underscoredToJava(uglyName, false);
- }
-
- @Override
- public String createObjEntityName(DbEntity dbEntity) {
- return Util.underscoredToJava(dbEntity.getName(), true);
- }
-
- @Override
- public String createObjAttributeName(DbAttribute attr) {
- return Util.underscoredToJava(attr.getName(), false);
- }
-
- @Override
- public String createObjRelationshipName(DbRelationship dbRel) {
- return Util.underscoredToJava(dbRel.getName(), false);
- }
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/ObjectNameGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/ObjectNameGenerator.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/ObjectNameGenerator.java
deleted file mode 100644
index da45ab3..0000000
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/naming/ObjectNameGenerator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.dbsync.reverse.naming;
-
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-
-/**
- * ObjectNameGenerator is a strategy for creating names for entities,
- * attributes, relationships from DB metadata.
- *
- * @since 4.0
- */
-public interface ObjectNameGenerator {
-
- /**
- * Creates new name for ObjEntity
- */
- String createObjEntityName(DbEntity entity);
-
- /**
- * Creates new name for ObjAttribute
- */
- String createObjAttributeName(DbAttribute attr);
-
- /**
- * Creates new name for DbRelationship
- */
- String createDbRelationshipName(ExportedKey key, boolean toMany);
-
- /**
- * Creates new name for ObjRelationship
- */
- String createObjRelationshipName(DbRelationship dbRel);
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
index d21b58c..8d304da 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/EntityMergeSupportIT.java
@@ -18,7 +18,7 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGeneratorTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGeneratorTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGeneratorTest.java
new file mode 100644
index 0000000..dbd9dc3
--- /dev/null
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/DefaultObjectNameGeneratorTest.java
@@ -0,0 +1,61 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.dbsync.naming;
+
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class DefaultObjectNameGeneratorTest {
+
+ @Test
+ public void testStrategy() throws Exception {
+ DefaultObjectNameGenerator strategy = new DefaultObjectNameGenerator();
+
+ ExportedKey key = new ExportedKey("ARTIST", "ARTIST_ID", null,
+ "PAINTING", "ARTIST_ID", null, (short) 1);
+ assertEquals(strategy.dbRelationshipName(key, false), "artist");
+ assertEquals(strategy.dbRelationshipName(key, true), "paintings");
+
+ key = new ExportedKey("PERSON", "PERSON_ID", null,
+ "PERSON", "MOTHER_ID", null, (short) 1);
+ assertEquals(strategy.dbRelationshipName(key, false), "mother");
+ assertEquals(strategy.dbRelationshipName(key, true), "people");
+
+ key = new ExportedKey("PERSON", "PERSON_ID", null,
+ "ADDRESS", "SHIPPING_ADDRESS_ID", null, (short) 1);
+ assertEquals(strategy.dbRelationshipName(key, false), "shippingAddress");
+ assertEquals(strategy.dbRelationshipName(key, true), "addresses");
+
+ assertEquals(strategy.objEntityName(new DbEntity("ARTIST")), "Artist");
+ assertEquals(strategy.objEntityName(new DbEntity("ARTIST_WORK")), "ArtistWork");
+
+ assertEquals(strategy.objAttributeName(new DbAttribute("NAME")), "name");
+ assertEquals(strategy.objAttributeName(new DbAttribute("ARTIST_NAME")), "artistName");
+
+ assertEquals(strategy.objRelationshipName(new DbRelationship("mother")), "mother");
+ assertEquals(strategy.objRelationshipName(new DbRelationship("persons")), "persons");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGeneratorTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGeneratorTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGeneratorTest.java
new file mode 100644
index 0000000..b1f5619
--- /dev/null
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/naming/LegacyObjectNameGeneratorTest.java
@@ -0,0 +1,55 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.dbsync.naming;
+
+import org.apache.cayenne.dbsync.naming.LegacyObjectNameGenerator;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class LegacyObjectNameGeneratorTest {
+
+ @Test
+ public void testStrategy() throws Exception {
+ LegacyObjectNameGenerator strategy = new LegacyObjectNameGenerator();
+
+ ExportedKey key = new ExportedKey("ARTIST", "ARTIST_ID", null,
+ "PAINTING", "ARTIST_ID", null, (short) 1);
+ assertEquals(strategy.dbRelationshipName(key, false), "toArtist");
+ assertEquals(strategy.dbRelationshipName(key, true), "paintingArray");
+
+ key = new ExportedKey("PERSON", "PERSON_ID", null,
+ "PERSON", "MOTHER_ID", null, (short) 1);
+ assertEquals(strategy.dbRelationshipName(key, false), "toPerson");
+ assertEquals(strategy.dbRelationshipName(key, true), "personArray");
+
+ assertEquals(strategy.objEntityName(new DbEntity("ARTIST")), "Artist");
+ assertEquals(strategy.objEntityName(new DbEntity("ARTIST_WORK")), "ArtistWork");
+
+ assertEquals(strategy.objAttributeName(new DbAttribute("NAME")), "name");
+ assertEquals(strategy.objAttributeName(new DbAttribute("ARTIST_NAME")), "artistName");
+
+ assertEquals(strategy.objRelationshipName(new DbRelationship("toArtist")), "toArtist");
+ assertEquals(strategy.objRelationshipName(new DbRelationship("paintingArray")), "paintingArray");
+ }
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntityTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntityTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntityTest.java
index 4f36005..d56560a 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntityTest.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/db/ManyToManyCandidateEntityTest.java
@@ -36,7 +36,7 @@ import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.Relationship;
-import org.apache.cayenne.dbsync.reverse.naming.LegacyObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.LegacyObjectNameGenerator;
import org.apache.cayenne.resource.URLResource;
import org.junit.Before;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGeneratorTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGeneratorTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGeneratorTest.java
deleted file mode 100644
index a29c786..0000000
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/DefaultObjectNameGeneratorTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.dbsync.reverse.naming;
-
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class DefaultObjectNameGeneratorTest {
-
- @Test
- public void testStrategy() throws Exception {
- DefaultObjectNameGenerator strategy = new DefaultObjectNameGenerator();
-
- ExportedKey key = new ExportedKey("ARTIST", "ARTIST_ID", null,
- "PAINTING", "ARTIST_ID", null, (short) 1);
- assertEquals(strategy.createDbRelationshipName(key, false), "artist");
- assertEquals(strategy.createDbRelationshipName(key, true), "paintings");
-
- key = new ExportedKey("PERSON", "PERSON_ID", null,
- "PERSON", "MOTHER_ID", null, (short) 1);
- assertEquals(strategy.createDbRelationshipName(key, false), "mother");
- assertEquals(strategy.createDbRelationshipName(key, true), "people");
-
- key = new ExportedKey("PERSON", "PERSON_ID", null,
- "ADDRESS", "SHIPPING_ADDRESS_ID", null, (short) 1);
- assertEquals(strategy.createDbRelationshipName(key, false), "shippingAddress");
- assertEquals(strategy.createDbRelationshipName(key, true), "addresses");
-
- assertEquals(strategy.createObjEntityName(new DbEntity("ARTIST")), "Artist");
- assertEquals(strategy.createObjEntityName(new DbEntity("ARTIST_WORK")), "ArtistWork");
-
- assertEquals(strategy.createObjAttributeName(new DbAttribute("NAME")), "name");
- assertEquals(strategy.createObjAttributeName(new DbAttribute("ARTIST_NAME")), "artistName");
-
- assertEquals(strategy.createObjRelationshipName(new DbRelationship("mother")), "mother");
- assertEquals(strategy.createObjRelationshipName(new DbRelationship("persons")), "persons");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGeneratorTest.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGeneratorTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGeneratorTest.java
deleted file mode 100644
index ea4902d..0000000
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/naming/LegacyObjectNameGeneratorTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-package org.apache.cayenne.dbsync.reverse.naming;
-
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class LegacyObjectNameGeneratorTest {
-
- @Test
- public void testStrategy() throws Exception {
- LegacyObjectNameGenerator strategy = new LegacyObjectNameGenerator();
-
- ExportedKey key = new ExportedKey("ARTIST", "ARTIST_ID", null,
- "PAINTING", "ARTIST_ID", null, (short) 1);
- assertEquals(strategy.createDbRelationshipName(key, false), "toArtist");
- assertEquals(strategy.createDbRelationshipName(key, true), "paintingArray");
-
- key = new ExportedKey("PERSON", "PERSON_ID", null,
- "PERSON", "MOTHER_ID", null, (short) 1);
- assertEquals(strategy.createDbRelationshipName(key, false), "toPerson");
- assertEquals(strategy.createDbRelationshipName(key, true), "personArray");
-
- assertEquals(strategy.createObjEntityName(new DbEntity("ARTIST")), "Artist");
- assertEquals(strategy.createObjEntityName(new DbEntity("ARTIST_WORK")), "ArtistWork");
-
- assertEquals(strategy.createObjAttributeName(new DbAttribute("NAME")), "name");
- assertEquals(strategy.createObjAttributeName(new DbAttribute("ARTIST_NAME")), "artistName");
-
- assertEquals(strategy.createObjRelationshipName(new DbRelationship("toArtist")), "toArtist");
- assertEquals(strategy.createObjRelationshipName(new DbRelationship("paintingArray")), "paintingArray");
- }
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
index adea83a..921db3b 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
@@ -40,7 +40,7 @@ import org.apache.cayenne.dbsync.reverse.FiltersConfigBuilder;
import org.apache.cayenne.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.resource.URLResource;
import org.apache.cayenne.tools.configuration.ToolsModule;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
index 57953c5..b5c2fa7 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
@@ -35,8 +35,8 @@ import org.apache.cayenne.dbsync.reverse.db.DefaultDbLoaderDelegate;
import org.apache.cayenne.dbsync.reverse.db.LoggingDbLoaderDelegate;
import org.apache.cayenne.dbsync.reverse.filters.CatalogFilter;
import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
index e7adb7c..8f5ef79 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
@@ -33,7 +33,7 @@ import org.apache.cayenne.dbsync.merge.ModelMergeDelegate;
import org.apache.cayenne.dbsync.merge.ProxyModelMergeDelegate;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.dbsync.reverse.db.DbLoader;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.EntityResolver;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
index f5d5bbc..98842a3 100644
--- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
+++ b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java
@@ -36,7 +36,7 @@ import org.apache.cayenne.dbsync.merge.factory.DefaultMergerTokenFactory;
import org.apache.cayenne.dbsync.reverse.db.DbLoader;
import org.apache.cayenne.dbsync.reverse.db.DbLoaderConfiguration;
import org.apache.cayenne.dbsync.reverse.db.DbLoaderDelegate;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.map.DataMap;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
index 8569697..b5a95d7 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.configuration.ConfigurationNode;
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.dbsync.merge.EntityMergeSupport;
import org.apache.cayenne.dbsync.naming.NameBuilder;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
@@ -96,7 +96,7 @@ public class CreateObjEntityAction extends CayenneAction {
entity.setDbEntity(dbEntity);
// TODO: use injectable name generator
- String baseName = new DefaultObjectNameGenerator().createObjEntityName(dbEntity);
+ String baseName = new DefaultObjectNameGenerator().objEntityName(dbEntity);
entity.setName(NameBuilder
.builder(entity, dbEntity.getDataMap())
.baseName(baseName)
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
index b03f8da..71540c4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
@@ -29,7 +29,7 @@ import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.map.event.RelationshipEvent;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ClassLoadingService;
import org.apache.cayenne.modeler.ProjectController;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
index 3d3ab37..8530dfd 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsControllerBase.java
@@ -31,7 +31,7 @@ import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.commons.collections.Predicate;
@@ -211,7 +211,7 @@ public class InferRelationshipsControllerBase extends CayenneController {
myir.getSource().getName(),
myir.getJoinSource().getName());
}
- myir.setName(strategy.createDbRelationshipName(key, myir.isToMany()));
+ myir.setName(strategy.dbRelationshipName(key, myir.isToMany()));
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
index 276f258..0680e5c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/EntitySyncController.java
@@ -22,7 +22,7 @@ package org.apache.cayenne.modeler.dialog.objentity;
import org.apache.cayenne.dbsync.merge.EntityMergeSupport;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.cayenne.modeler.util.NameGeneratorPreferences;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
index 11172fb..56ad7e6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
@@ -28,7 +28,7 @@ import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.dbsync.reverse.db.ExportedKey;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ClassLoadingService;
import org.apache.cayenne.modeler.ProjectController;
@@ -342,7 +342,7 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
dbRelationship.setName(createNamingStrategy(NameGeneratorPreferences
.getInstance()
.getLastUsedStrategies()
- .get(0)).createDbRelationshipName(
+ .get(0)).dbRelationshipName(
new ExportedKey(targetModel.getSource().getName(), null, null,
targetModel.getTarget().getName(), null, null, (short) 1),
targetModel.isToMany()));
http://git-wip-us.apache.org/repos/asf/cayenne/blob/413c7204/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
index c215e2b..9380e2b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
@@ -22,9 +22,9 @@ import java.util.Arrays;
import java.util.Vector;
import java.util.prefs.Preferences;
-import org.apache.cayenne.dbsync.reverse.naming.LegacyObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.LegacyObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator;
+import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.modeler.Application;
/**