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/04 12:45:30 UTC
[2/7] cayenne git commit: CAY-2114 cdbimport: object layer settings
are not respected
CAY-2114 cdbimport: object layer settings are not respected
* support for proper flags in EntityMergeSupport
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3a5f31d1
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3a5f31d1
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3a5f31d1
Branch: refs/heads/master
Commit: 3a5f31d17e2a1cd2e108aa1b43ce8cbd468b421c
Parents: 6a1eb0f
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Tue Oct 4 13:51:07 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Tue Oct 4 13:51:07 2016 +0300
----------------------------------------------------------------------
.../dbsync/merge/EntityMergeSupport.java | 54 +++++++++-----------
.../cayenne/dbsync/merge/MergerContext.java | 16 +++++-
.../dbsync/merge/EntityMergeSupportIT.java | 2 +-
.../modeler/action/CreateObjEntityAction.java | 4 +-
.../dialog/objentity/EntitySyncController.java | 6 ++-
5 files changed, 46 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/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 bf54dcc..c0d46d7 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
@@ -1,22 +1,21 @@
-/*****************************************************************
- * 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
+/*
+ * 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
+ * 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.
- ****************************************************************/
-
+ * 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.merge;
import org.apache.cayenne.dba.TypesMapping;
@@ -65,15 +64,20 @@ public class EntityMergeSupport {
private final ObjectNameGenerator nameGenerator;
private final List<EntityMergeListener> listeners;
- protected boolean removingMeaningfulFKs;
- protected boolean removingMeaningfulPKs;
- protected boolean usingPrimitives;
+ private final boolean removingMeaningfulFKs;
+ private final boolean removingMeaningfulPKs;
+ private final boolean usingPrimitives;
+
+ public EntityMergeSupport(ObjectNameGenerator nameGenerator,
+ boolean removingMeaningfulPKs,
+ boolean removingMeaningfulFKs,
+ boolean usingPrimitives) {
- public EntityMergeSupport(ObjectNameGenerator nameGenerator, boolean removingMeaningfulPKs, boolean removingMeaningfulFKs) {
this.listeners = new ArrayList<>();
this.nameGenerator = nameGenerator;
this.removingMeaningfulFKs = removingMeaningfulFKs;
this.removingMeaningfulPKs = removingMeaningfulPKs;
+ this.usingPrimitives = usingPrimitives;
// will ensure that all created ObjRelationships would have
// default delete rule
@@ -487,12 +491,4 @@ public class EntityMergeSupport {
public boolean isUsingPrimitives() {
return usingPrimitives;
}
-
- /**
- * @param usingPrimitives
- * @since 4.0
- */
- public void setUsingPrimitives(boolean usingPrimitives) {
- this.usingPrimitives = usingPrimitives;
- }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/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 57eab3e..53c5265 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
@@ -103,6 +103,8 @@ public class MergerContext {
public static class Builder {
private MergerContext context;
+ private ObjectNameGenerator nameGenerator;
+ private boolean usingPrimitives;
private Builder(DataMap dataMap) {
this.context = new MergerContext();
@@ -126,6 +128,12 @@ public class MergerContext {
dataNode(new DataNode());
}
+ if(nameGenerator == null) {
+ nameGenerator = new DefaultObjectNameGenerator();
+ }
+
+ context.entityMergeSupport = new EntityMergeSupport(nameGenerator, true, true, usingPrimitives);
+
return context;
}
@@ -135,8 +143,12 @@ public class MergerContext {
}
public Builder nameGenerator(ObjectNameGenerator nameGenerator) {
- // should the last argument also be a part of the builder?
- context.entityMergeSupport = new EntityMergeSupport(Objects.requireNonNull(nameGenerator), true, true);
+ this.nameGenerator = Objects.requireNonNull(nameGenerator);
+ return this;
+ }
+
+ public Builder usingPrimitives(boolean flag) {
+ this.usingPrimitives = flag;
return this;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/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 bc24100..b47ac20 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
@@ -87,7 +87,7 @@ public class EntityMergeSupportIT extends MergeCase {
objEntity2.setDbEntity(dbEntity2);
map.addObjEntity(objEntity2);
- assertTrue(new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true)
+ assertTrue(new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true, true)
.synchronizeWithDbEntities(Arrays.asList(objEntity1, objEntity2)));
assertNotNull(objEntity1.getAttribute("name"));
assertNotNull(objEntity1.getRelationship("rel1To2"));
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/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 af43556..8602415 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
@@ -111,8 +111,8 @@ public class CreateObjEntityAction extends CayenneAction {
dataMap.addObjEntity(entity);
- // perform the merge
- EntityMergeSupport merger = new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true);
+ // TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
+ EntityMergeSupport merger = new EntityMergeSupport(new DefaultObjectNameGenerator(), true, true, true);
merger.addEntityMergeListener(DeleteRuleUpdater.getEntityMergeListener());
merger.synchronizeWithDbEntity(entity);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/3a5f31d1/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 ce2193e..e02080c 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
@@ -68,7 +68,8 @@ public class EntitySyncController extends CayenneController {
namingStrategy = NameGeneratorPreferences.defaultNameGenerator();
}
- EntityMergeSupport merger = new EntityMergeSupport(namingStrategy, true, true);
+ // TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
+ EntityMergeSupport merger = new EntityMergeSupport(namingStrategy, true, true, true);
// see if we need to remove meaningful attributes...
for (ObjEntity entity : entities) {
@@ -113,7 +114,8 @@ public class EntitySyncController extends CayenneController {
makeCloseableOnEscape();
view.setVisible(true);
- return cancel[0] ? null : new EntityMergeSupport(namingStrategy, true, removeFKs[0]);
+ // TODO: Modeler-controlled defaults for all the hardcoded boolean flags here.
+ return cancel[0] ? null : new EntityMergeSupport(namingStrategy, true, removeFKs[0], true);
}
@Override