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/09/30 19:18:37 UTC
[1/4] cayenne git commit: CAY-2114 cdbimport: object layer settings
are not respected
Repository: cayenne
Updated Branches:
refs/heads/master ad9447556 -> 8ac060fce
CAY-2114 cdbimport: object layer settings are not respected
* propagating top-level ObjectNameGenerator down to all tokens
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/603117cd
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/603117cd
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/603117cd
Branch: refs/heads/master
Commit: 603117cd75b45cce71e5cfad1c6d7bf2aea76044
Parents: ad94475
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Fri Sep 30 21:32:57 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Fri Sep 30 21:38:20 2016 +0300
----------------------------------------------------------------------
.../cayenne/dbsync/merge/AddColumnToModel.java | 13 ++--
.../dbsync/merge/AddRelationshipToModel.java | 65 +++++++++-----------
.../dbsync/merge/CreateTableToModel.java | 14 ++---
.../cayenne/dbsync/merge/DropColumnToModel.java | 6 +-
.../dbsync/merge/DropRelationshipToModel.java | 2 +-
.../cayenne/dbsync/merge/DropTableToModel.java | 4 +-
.../dbsync/merge/EntityMergeSupport.java | 13 ++--
.../cayenne/dbsync/merge/MergerContext.java | 58 ++++++++++++++---
.../cayenne/dbsync/merge/MergerToken.java | 4 +-
.../dbsync/merge/SetAllowNullToModel.java | 2 +-
.../dbsync/merge/SetColumnTypeToModel.java | 2 +-
.../cayenne/dbsync/merge/SetNotNullToModel.java | 2 +-
.../dbsync/merge/SetPrimaryKeyToModel.java | 2 +-
.../naming/LegacyObjectNameGenerator.java | 8 ++-
.../dbsync/merge/EntityMergeSupportIT.java | 4 +-
.../tools/dbimport/DbImportConfiguration.java | 15 +++--
.../tools/dbimport/DefaultDbImportAction.java | 22 +++++--
.../modeler/action/CreateObjEntityAction.java | 3 +-
.../modeler/dialog/db/MergerOptions.java | 6 +-
19 files changed, 146 insertions(+), 99 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToModel.java
index 30390ca..823a81d 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToModel.java
@@ -26,7 +26,6 @@ import org.apache.cayenne.map.ObjEntity;
/**
* A {@link MergerToken} to add a {@link DbAttribute} to a {@link DbEntity}. The
* {@link EntityMergeSupport} will be used to update the mapped {@link ObjEntity}
- *
*/
public class AddColumnToModel extends AbstractToModelToken.EntityAndColumn {
@@ -34,22 +33,20 @@ public class AddColumnToModel extends AbstractToModelToken.EntityAndColumn {
super("Add Column", entity, column);
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createDropColumnToDb(getEntity(), getColumn());
}
+ @Override
public void execute(MergerContext mergerContext) {
getEntity().addAttribute(getColumn());
- // TODO: use EntityMergeSupport from DbImportConfiguration... otherwise we are ignoring a bunch of
- // important settings
-
- EntityMergeSupport entityMergeSupport = new EntityMergeSupport(mergerContext.getDataMap());
- for(ObjEntity e : getEntity().mappedObjEntities()) {
- entityMergeSupport.synchronizeOnDbAttributeAdded(e, getColumn());
+ for (ObjEntity e : getEntity().mappedObjEntities()) {
+ mergerContext.getEntityMergeSupport().synchronizeOnDbAttributeAdded(e, getColumn());
}
- mergerContext.getModelMergeDelegate().dbAttributeAdded(getColumn());
+ mergerContext.getDelegate().dbAttributeAdded(getColumn());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToModel.java
index f516a3e..5ae2d3f 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToModel.java
@@ -28,34 +28,15 @@ public class AddRelationshipToModel extends AbstractToModelToken.Entity {
public static final String COMMA_SEPARATOR = ", ";
public static final int COMMA_SEPARATOR_LENGTH = COMMA_SEPARATOR.length();
- private DbRelationship rel;
- public AddRelationshipToModel(DbEntity entity, DbRelationship rel) {
- super("Add Relationship", entity);
- this.rel = rel;
- }
-
- public MergerToken createReverse(MergerTokenFactory factory) {
- return factory.createDropRelationshipToDb(getEntity(), rel);
- }
-
- public void execute(MergerContext mergerContext) {
- getEntity().addRelationship(rel);
- // TODO: add reverse relationship as well if it does not exist
-
- // TODO: use EntityMergeSupport from DbImportConfiguration... otherwise we are ignoring a bunch of
- // important settings
-
- EntityMergeSupport entityMergeSupport = new EntityMergeSupport(mergerContext.getDataMap());
- for(ObjEntity e : getEntity().mappedObjEntities()) {
- entityMergeSupport.synchronizeOnDbRelationshipAdded(e, rel);
- }
+ private DbRelationship relationship;
- mergerContext.getModelMergeDelegate().dbRelationshipAdded(rel);
+ public AddRelationshipToModel(DbEntity entity, DbRelationship relationship) {
+ super("Add Relationship", entity);
+ this.relationship = relationship;
}
- @Override
- public String getTokenValue() {
+ public static String getTokenValue(DbRelationship rel) {
String attributes = "";
if (rel.getJoins().size() == 1) {
attributes = rel.getJoins().get(0).getTargetName();
@@ -70,26 +51,38 @@ public class AddRelationshipToModel extends AbstractToModelToken.Entity {
return rel.getName() + " " + rel.getSourceEntity().getName() + "->" + rel.getTargetEntityName() + "." + attributes;
}
+ @Override
+ public MergerToken createReverse(MergerTokenFactory factory) {
+ return factory.createDropRelationshipToDb(getEntity(), relationship);
+ }
- public static String getTokenValue(DbRelationship rel) {
+ @Override
+ public void execute(MergerContext context) {
+
+ getEntity().addRelationship(relationship);
+
+ // TODO: add reverse relationship as well if it does not exist
+
+ for (ObjEntity e : getEntity().mappedObjEntities()) {
+ context.getEntityMergeSupport().synchronizeOnDbRelationshipAdded(e, relationship);
+ }
+
+ context.getDelegate().dbRelationshipAdded(relationship);
+ }
+
+ @Override
+ public String getTokenValue() {
String attributes = "";
- if (rel.getJoins().size() == 1) {
- attributes = rel.getJoins().get(0).getTargetName();
+ if (relationship.getJoins().size() == 1) {
+ attributes = relationship.getJoins().get(0).getTargetName();
} else {
- for (DbJoin dbJoin : rel.getJoins()) {
+ for (DbJoin dbJoin : relationship.getJoins()) {
attributes += dbJoin.getTargetName() + COMMA_SEPARATOR;
}
attributes = "{" + attributes.substring(0, attributes.length() - COMMA_SEPARATOR_LENGTH) + "}";
}
- return rel.getName() + " " + rel.getSourceEntity().getName() + "->" + rel.getTargetEntityName() + "." + attributes;
+ return relationship.getName() + " " + relationship.getSourceEntity().getName() + "->" + relationship.getTargetEntityName() + "." + attributes;
}
-
- public DbRelationship getRelationship() {
- return rel;
- }
-
-
-
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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 436a1f5..98a8f3a 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
@@ -53,10 +53,11 @@ public class CreateTableToModel extends AbstractToModelToken.Entity {
objEntityClassName = n;
}
- public void execute(MergerContext mergerContext) {
+ @Override
+ public void execute(MergerContext context) {
DbEntity dbEntity = getEntity();
- DataMap map = mergerContext.getDataMap();
+ DataMap map = context.getDataMap();
map.addDbEntity(dbEntity);
// create a ObjEntity
@@ -94,13 +95,10 @@ public class CreateTableToModel extends AbstractToModelToken.Entity {
map.addObjEntity(objEntity);
// presumably there are no other ObjEntities pointing to this DbEntity, so syncing just this one...
+ context.getEntityMergeSupport().synchronizeWithDbEntity(objEntity);
- // TODO: use EntityMergeSupport from DbImportConfiguration... otherwise we are ignoring a bunch of
- // important settings
- new EntityMergeSupport(map).synchronizeWithDbEntity(objEntity);
-
- mergerContext.getModelMergeDelegate().dbEntityAdded(getEntity());
- mergerContext.getModelMergeDelegate().objEntityAdded(objEntity);
+ context.getDelegate().dbEntityAdded(getEntity());
+ context.getDelegate().objEntityAdded(objEntity);
}
public MergerToken createReverse(MergerTokenFactory factory) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
index ceb03bc..70d1b1c 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
@@ -52,7 +52,7 @@ public class DropColumnToModel extends AbstractToModelToken.EntityAndColumn {
for (DbRelationship dbRelationship : dbRelationships) {
for (DbJoin join : dbRelationship.getJoins()) {
if (join.getSource() == getColumn() || join.getTarget() == getColumn()) {
- remove(mergerContext.getModelMergeDelegate(), dbRelationship, true);
+ remove(mergerContext.getDelegate(), dbRelationship, true);
}
}
}
@@ -62,7 +62,7 @@ public class DropColumnToModel extends AbstractToModelToken.EntityAndColumn {
ObjAttribute objAttribute = objEntity.getAttributeForDbAttribute(getColumn());
if (objAttribute != null) {
objEntity.removeAttribute(objAttribute.getName());
- mergerContext.getModelMergeDelegate().objAttributeRemoved(objAttribute);
+ mergerContext.getDelegate().objAttributeRemoved(objAttribute);
}
}
@@ -70,6 +70,6 @@ public class DropColumnToModel extends AbstractToModelToken.EntityAndColumn {
// remove DbAttribute
getEntity().removeAttribute(getColumn().getName());
- mergerContext.getModelMergeDelegate().dbAttributeRemoved(getColumn());
+ mergerContext.getDelegate().dbAttributeRemoved(getColumn());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
index 686df6e..082c33a 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
@@ -36,7 +36,7 @@ public class DropRelationshipToModel extends AbstractToModelToken.Entity {
}
public void execute(MergerContext mergerContext) {
- remove(mergerContext.getModelMergeDelegate(), rel, true);
+ remove(mergerContext.getDelegate(), rel, true);
}
@Override
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
index 7a47f37..3bdd8f3 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
@@ -41,9 +41,9 @@ public class DropTableToModel extends AbstractToModelToken.Entity {
public void execute(MergerContext mergerContext) {
for (ObjEntity objEntity : getEntity().mappedObjEntities()) {
objEntity.getDataMap().removeObjEntity(objEntity.getName(), true);
- mergerContext.getModelMergeDelegate().objEntityRemoved(objEntity);
+ mergerContext.getDelegate().objEntityRemoved(objEntity);
}
getEntity().getDataMap().removeDbEntity(getEntity().getName(), true);
- mergerContext.getModelMergeDelegate().dbEntityRemoved(getEntity());
+ mergerContext.getDelegate().dbEntityRemoved(getEntity());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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 e055883..c7fc8de 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
@@ -20,6 +20,9 @@
package org.apache.cayenne.dbsync.merge;
import org.apache.cayenne.dba.TypesMapping;
+import org.apache.cayenne.dbsync.naming.DuplicateNameResolver;
+import org.apache.cayenne.dbsync.naming.NameCheckers;
+import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -29,10 +32,6 @@ import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.dbsync.naming.DuplicateNameResolver;
-import org.apache.cayenne.dbsync.reverse.naming.LegacyObjectNameGenerator;
-import org.apache.cayenne.dbsync.naming.NameCheckers;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
import org.apache.cayenne.util.DeleteRuleUpdater;
import org.apache.cayenne.util.EntityMergeListener;
import org.apache.commons.logging.Log;
@@ -77,11 +76,7 @@ public class EntityMergeSupport {
protected boolean removeMeaningfulFKs;
protected boolean removeMeaningfulPKs;
protected boolean usePrimitives;
-
- public EntityMergeSupport(DataMap map) {
- this(map, new LegacyObjectNameGenerator(), true);
- }
-
+
/**
* @since 3.0
*/
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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 772de97..3605e10 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,6 +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.map.DataMap;
import org.apache.cayenne.validation.ValidationResult;
@@ -36,12 +38,16 @@ public class MergerContext {
private DataNode dataNode;
private ValidationResult validationResult;
private ModelMergeDelegate delegate;
+ private EntityMergeSupport entityMergeSupport;
protected MergerContext() {
}
+ /**
+ * @since 4.0
+ */
public static Builder builder(DataMap dataMap) {
- return new Builder().dataMap(dataMap);
+ return new Builder(dataMap);
}
/**
@@ -53,6 +59,13 @@ public class MergerContext {
}
/**
+ * @since 4.0
+ */
+ public EntityMergeSupport getEntityMergeSupport() {
+ return entityMergeSupport;
+ }
+
+ /**
* Returns the DataMap that is the target of a the merge operation.
*
* @return the DataMap that is the target of a the merge operation.
@@ -73,23 +86,46 @@ public class MergerContext {
* Returns a callback object that is invoked as the merge proceeds through tokens, modifying the DataMap.
*
* @return a callback object that is invoked as the merge proceeds through tokens, modifying the DataMap.
+ * @since 4.0
*/
- public ModelMergeDelegate getModelMergeDelegate() {
+ public ModelMergeDelegate getDelegate() {
return delegate;
}
+ /**
+ * @deprecated since 4.0 in favor of {@link #getDelegate()}.
+ */
+ @Deprecated
+ public ModelMergeDelegate getModelMergeDelegate() {
+ return getDelegate();
+ }
+
public static class Builder {
private MergerContext context;
- private Builder() {
+ private Builder(DataMap dataMap) {
this.context = new MergerContext();
+ this.context.dataMap = Objects.requireNonNull(dataMap);
this.context.validationResult = new ValidationResult();
- this.context.delegate = new DefaultModelMergeDelegate();
- this.context.dataNode = new DataNode();
}
public MergerContext build() {
+
+ // init missing defaults ...
+
+ if (context.entityMergeSupport == null) {
+ nameGenerator(new DefaultObjectNameGenerator());
+ }
+
+ if (context.delegate == null) {
+ delegate(new DefaultModelMergeDelegate());
+ }
+
+ if (context.dataNode == null) {
+ dataNode(new DataNode());
+ }
+
return context;
}
@@ -98,6 +134,13 @@ public class MergerContext {
return this;
}
+ public Builder nameGenerator(ObjectNameGenerator nameGenerator) {
+ context.entityMergeSupport = new EntityMergeSupport(context.getDataMap(),
+ Objects.requireNonNull(nameGenerator),
+ true); // should the last argument also be a part of the builder?
+ return this;
+ }
+
public Builder dataNode(DataNode dataNode) {
this.context.dataNode = Objects.requireNonNull(dataNode);
return this;
@@ -109,10 +152,5 @@ public class MergerContext {
dataNode.setAdapter(adapter);
return dataNode(dataNode);
}
-
- public Builder dataMap(DataMap dataMap) {
- context.dataMap = Objects.requireNonNull(dataMap);
- return this;
- }
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerToken.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerToken.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerToken.java
index 5359b62..5088f97 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerToken.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/MergerToken.java
@@ -46,8 +46,8 @@ public interface MergerToken {
/**
* Executes synchronization operation.
*
- * @param mergerContext operation context.
+ * @param context merge operation context.
*/
- void execute(MergerContext mergerContext);
+ void execute(MergerContext context);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
index 71a0937..5d9c890 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
@@ -38,6 +38,6 @@ public class SetAllowNullToModel extends AbstractToModelToken.EntityAndColumn {
public void execute(MergerContext mergerContext) {
getColumn().setMandatory(false);
- mergerContext.getModelMergeDelegate().dbAttributeModified(getColumn());
+ mergerContext.getDelegate().dbAttributeModified(getColumn());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
index 262c3a6..cf2b1e0 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
@@ -50,7 +50,7 @@ public class SetColumnTypeToModel extends AbstractToModelToken.Entity {
columnOriginal.setMaxLength(columnNew.getMaxLength());
columnOriginal.setAttributePrecision(columnNew.getAttributePrecision());
columnOriginal.setScale(columnNew.getScale());
- mergerContext.getModelMergeDelegate().dbAttributeModified(columnOriginal);
+ mergerContext.getDelegate().dbAttributeModified(columnOriginal);
}
@Override
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
index 9ae95b5..7402f57 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
@@ -38,6 +38,6 @@ public class SetNotNullToModel extends AbstractToModelToken.EntityAndColumn {
public void execute(MergerContext mergerContext) {
getColumn().setMandatory(true);
- mergerContext.getModelMergeDelegate().dbAttributeModified(getColumn());
+ mergerContext.getDelegate().dbAttributeModified(getColumn());
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
index 6785a2f..198fe4f 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
@@ -69,7 +69,7 @@ public class SetPrimaryKeyToModel extends AbstractToModelToken.Entity {
if (wasPrimaryKey != willBePrimaryKey) {
attr.setPrimaryKey(willBePrimaryKey);
e.dbAttributeChanged(new AttributeEvent(this, attr, e));
- mergerContext.getModelMergeDelegate().dbAttributeModified(attr);
+ mergerContext.getDelegate().dbAttributeModified(attr);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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
index 1c52a6e..986b192 100644
--- 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
@@ -25,13 +25,14 @@ import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.util.Util;
/**
- * BasicNamingStrategy is an naming strategy that creates names in Cayenne's
- * old-fashioned manner, i.e. the same way Cayenne did before 3.0
+ * 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) {
@@ -40,14 +41,17 @@ public class LegacyObjectNameGenerator implements ObjectNameGenerator {
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/603117cd/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 d63c6a4..d21b58c 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,6 +18,7 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
+import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
@@ -86,7 +87,8 @@ public class EntityMergeSupportIT extends MergeCase {
objEntity2.setDbEntity(dbEntity2);
map.addObjEntity(objEntity2);
- assertTrue(new EntityMergeSupport(map).synchronizeWithDbEntities(Arrays.asList(objEntity1, objEntity2)));
+ assertTrue(new EntityMergeSupport(map, new DefaultObjectNameGenerator(), true)
+ .synchronizeWithDbEntities(Arrays.asList(objEntity1, objEntity2)));
assertNotNull(objEntity1.getAttribute("name"));
assertNotNull(objEntity1.getRelationship("rel1To2"));
assertNotNull(objEntity2.getRelationship("rel2To1"));
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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 e45cdf9..57953c5 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,11 +35,11 @@ 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.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.dbsync.reverse.naming.LegacyObjectNameGenerator;
-import org.apache.cayenne.dbsync.reverse.naming.ObjectNameGenerator;
import org.apache.cayenne.resource.URLResource;
import org.apache.commons.logging.Log;
@@ -163,23 +163,28 @@ public class DbImportConfiguration {
}
};
- // TODO: load via DI AdhocObjectFactory
+
loader.setNameGenerator(getNameGenerator());
return loader;
}
public ObjectNameGenerator getNameGenerator() {
+
+ // TODO: load via DI AdhocObjectFactory
+
+ // TODO: not a singleton; called from different places...
+
String namingStrategy = getNamingStrategy();
if (namingStrategy != null) {
try {
return (ObjectNameGenerator) Class.forName(namingStrategy).newInstance();
} catch (Exception e) {
- throw new CayenneRuntimeException("Error creating name generator", e);
+ throw new CayenneRuntimeException("Error creating name generator: " + namingStrategy, e);
}
}
- return new LegacyObjectNameGenerator(); // TODO
+ return new DefaultObjectNameGenerator();
}
public String getDriver() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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 7d17fd7..e7adb7c 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,6 +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.di.Inject;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.EntityResolver;
@@ -154,14 +155,19 @@ public class DefaultDbImportAction implements DbImportAction {
}
final Collection<ObjEntity> loadedObjEntities = new LinkedList<>();
- DataMap executed = execute(new ProxyModelMergeDelegate(config.createMergeDelegate()) {
+
+ ModelMergeDelegate delegate = new ProxyModelMergeDelegate(config.createMergeDelegate()) {
@Override
public void objEntityAdded(ObjEntity ent) {
loadedObjEntities.add(ent);
super.objEntityAdded(ent);
}
+ };
- }, existing, log(sort(reverse(mergerTokenFactory, mergeTokens))));
+ DataMap executed = execute(delegate,
+ existing,
+ log(sort(reverse(mergerTokenFactory, mergeTokens))),
+ config.getNameGenerator());
DbLoader.flattenManyToManyRelationships(executed, loadedObjEntities, config.getNameGenerator());
relationshipsSanity(executed);
@@ -226,9 +232,15 @@ public class DefaultDbImportAction implements DbImportAction {
/**
* Performs configured schema operations via DbGenerator.
*/
- private DataMap execute(ModelMergeDelegate mergeDelegate, DataMap dataMap, Collection<MergerToken> tokens) {
-
- MergerContext mergerContext = MergerContext.builder(dataMap).delegate(mergeDelegate).build();
+ private DataMap execute(ModelMergeDelegate mergeDelegate,
+ DataMap dataMap,
+ Collection<MergerToken> tokens,
+ ObjectNameGenerator nameGenerator) {
+
+ MergerContext mergerContext = MergerContext.builder(dataMap)
+ .delegate(mergeDelegate)
+ .nameGenerator(nameGenerator)
+ .build();
for (MergerToken token : tokens) {
try {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/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 254f18e..8a2bd4b 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
@@ -24,6 +24,7 @@ import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.dbsync.merge.EntityMergeSupport;
import org.apache.cayenne.dbsync.naming.DuplicateNameResolver;
import org.apache.cayenne.dbsync.naming.NameCheckers;
+import org.apache.cayenne.dbsync.reverse.naming.DefaultObjectNameGenerator;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
@@ -92,7 +93,7 @@ public class CreateObjEntityAction extends CayenneAction {
dataMap.addObjEntity(entity);
// perform the merge
- EntityMergeSupport merger = new EntityMergeSupport(dataMap);
+ EntityMergeSupport merger = new EntityMergeSupport(dataMap, new DefaultObjectNameGenerator(), true);
merger.addEntityMergeListener(DeleteRuleUpdater.getEntityMergeListener());
merger.synchronizeWithDbEntity(entity);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/603117cd/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java
index b8e2a08..271fd9b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/MergerOptions.java
@@ -409,8 +409,10 @@ public class MergerOptions extends CayenneController {
DataSource dataSource = connectionInfo.makeDataSource(getApplication()
.getClassLoadingService());
- MergerContext mergerContext = MergerContext.builder(dataMap).syntheticDataNode(dataSource, adapter)
- .delegate(delegate).build();
+ MergerContext mergerContext = MergerContext.builder(dataMap)
+ .syntheticDataNode(dataSource, adapter)
+ .delegate(delegate)
+ .build();
boolean modelChanged = false;
for (MergerToken tok : tokensToMigrate) {
[3/4] cayenne git commit: CAY-2114 cdbimport: object layer settings
are not respected
Posted by aa...@apache.org.
CAY-2114 cdbimport: object layer settings are not respected
* propagating top-level ObjectNameGenerator down to all tokens
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/5a031305
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/5a031305
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/5a031305
Branch: refs/heads/master
Commit: 5a031305ce0ddfca21b96e031bb710ef4fa4b824
Parents: 49a6ca3
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Fri Sep 30 21:32:57 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Fri Sep 30 21:52:10 2016 +0300
----------------------------------------------------------------------
.../apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/5a031305/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 45f6478..f5d5bbc 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,6 +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.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.map.DataMap;
@@ -155,6 +156,7 @@ public class DefaultDbImportActionTest {
when(params.getDataMapFile()).thenReturn(FILE_STUB);
when(params.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate());
when(params.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration());
+ when(params.getNameGenerator()).thenReturn(new DefaultObjectNameGenerator());
final boolean[] haveWeTriedToSave = {false};
DefaultDbImportAction action = buildDbImportAction(new FileProjectSaver() {
[2/4] cayenne git commit: minor cleanup
Posted by aa...@apache.org.
minor cleanup
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/49a6ca39
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/49a6ca39
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/49a6ca39
Branch: refs/heads/master
Commit: 49a6ca3909b5d17d09edc6c9dbd55175bafd8336
Parents: 603117c
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Fri Sep 30 21:45:31 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Fri Sep 30 21:45:31 2016 +0300
----------------------------------------------------------------------
.../dbsync/merge/AbstractToModelToken.java | 39 ++++++++++----------
.../cayenne/dbsync/merge/AddColumnToDb.java | 8 ++--
.../dbsync/merge/AddRelationshipToDb.java | 29 +++++++--------
.../dbsync/merge/CreateTableToModel.java | 2 +-
.../cayenne/dbsync/merge/DropColumnToModel.java | 8 ++--
.../dbsync/merge/DropRelationshipToDb.java | 25 +++++--------
.../dbsync/merge/DropRelationshipToModel.java | 18 ++++-----
.../cayenne/dbsync/merge/DropTableToDb.java | 9 +++--
.../cayenne/dbsync/merge/DropTableToModel.java | 2 +
.../cayenne/dbsync/merge/DummyReverseToken.java | 10 ++---
.../cayenne/dbsync/merge/SetAllowNullToDb.java | 7 ++--
.../dbsync/merge/SetAllowNullToModel.java | 2 +
.../cayenne/dbsync/merge/SetColumnTypeToDb.java | 16 ++------
.../dbsync/merge/SetColumnTypeToModel.java | 13 ++-----
.../cayenne/dbsync/merge/SetNotNullToDb.java | 7 ++--
.../cayenne/dbsync/merge/SetNotNullToModel.java | 4 +-
.../cayenne/dbsync/merge/SetPrimaryKeyToDb.java | 11 +++---
.../dbsync/merge/SetPrimaryKeyToModel.java | 10 +++--
.../dbsync/merge/SetValueForNullToDb.java | 5 ++-
19 files changed, 107 insertions(+), 118 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AbstractToModelToken.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AbstractToModelToken.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AbstractToModelToken.java
index 0c4b22e..424c8dc 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AbstractToModelToken.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AbstractToModelToken.java
@@ -27,7 +27,6 @@ import org.apache.cayenne.map.ObjRelationship;
/**
* Common abstract superclass for all {@link MergerToken}s going from the database to the
* model.
- *
*/
public abstract class AbstractToModelToken implements MergerToken {
@@ -37,15 +36,6 @@ public abstract class AbstractToModelToken implements MergerToken {
this.tokenName = tokenName;
}
- @Override
- public final String getTokenName() {
- return tokenName;
- }
-
- public final MergeDirection getDirection() {
- return MergeDirection.TO_MODEL;
- }
-
protected static void remove(ModelMergeDelegate mergerContext, DbRelationship rel, boolean reverse) {
if (rel == null) {
return;
@@ -58,7 +48,7 @@ public abstract class AbstractToModelToken implements MergerToken {
for (ObjEntity objEntity : dbEntity.mappedObjEntities()) {
remove(mergerContext, objEntity.getRelationshipForDbRelationship(rel), true);
}
-
+
rel.getSourceEntity().removeRelationship(rel.getName());
mergerContext.dbRelationshipRemoved(rel);
}
@@ -75,12 +65,22 @@ public abstract class AbstractToModelToken implements MergerToken {
}
@Override
+ public final String getTokenName() {
+ return tokenName;
+ }
+
+ @Override
+ public final MergeDirection getDirection() {
+ return MergeDirection.TO_MODEL;
+ }
+
+ @Override
public String toString() {
return getTokenName() + ' ' + getTokenValue() + ' ' + getDirection();
}
-
+
abstract static class Entity extends AbstractToModelToken {
-
+
private final DbEntity entity;
protected Entity(String tokenName, DbEntity entity) {
@@ -91,17 +91,17 @@ public abstract class AbstractToModelToken implements MergerToken {
public DbEntity getEntity() {
return entity;
}
-
+
public String getTokenValue() {
return getEntity().getName();
}
-
+
}
-
+
abstract static class EntityAndColumn extends Entity {
-
+
private final DbAttribute column;
-
+
protected EntityAndColumn(String tokenName, DbEntity entity, DbAttribute column) {
super(tokenName, entity);
this.column = column;
@@ -115,8 +115,7 @@ public abstract class AbstractToModelToken implements MergerToken {
public String getTokenValue() {
return getEntity().getName() + "." + getColumn().getName();
}
-
- }
+ }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToDb.java
index 977128c..2a87b98 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddColumnToDb.java
@@ -18,9 +18,6 @@
*/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
@@ -28,6 +25,9 @@ import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import java.util.Collections;
+import java.util.List;
+
public class AddColumnToDb extends AbstractToDbToken.EntityAndColumn {
public AddColumnToDb(DbEntity entity, DbAttribute column) {
@@ -58,8 +58,8 @@ public class AddColumnToDb extends AbstractToDbToken.EntityAndColumn {
return Collections.singletonList(sqlBuffer.toString());
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createDropColumnToModel(getEntity(), getColumn());
}
-
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToDb.java
index 5c851a6..150ac98 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/AddRelationshipToDb.java
@@ -18,22 +18,22 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.cayenne.access.DbGenerator;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
+import java.util.Collections;
+import java.util.List;
+
public class AddRelationshipToDb extends AbstractToDbToken.Entity {
- private DbRelationship rel;
+ private DbRelationship relationship;
- public AddRelationshipToDb(DbEntity entity, DbRelationship rel) {
+ public AddRelationshipToDb(DbEntity entity, DbRelationship relationship) {
super("Add foreign key", entity);
- this.rel = rel;
+ this.relationship = relationship;
}
/**
@@ -44,7 +44,7 @@ public class AddRelationshipToDb extends AbstractToDbToken.Entity {
// TODO: skip FK to a different DB
if (this.shouldGenerateFkConstraint()) {
- String fksql = adapter.createFkConstraint(rel);
+ String fksql = adapter.createFkConstraint(relationship);
if (fksql != null) {
return Collections.singletonList(fksql);
}
@@ -53,28 +53,25 @@ public class AddRelationshipToDb extends AbstractToDbToken.Entity {
}
public boolean shouldGenerateFkConstraint() {
- return !rel.isToMany()
- && rel.isToPK() // TODO it is not necessary primary key it can be unique index
- && !rel.isToDependentPK();
+ return !relationship.isToMany()
+ && relationship.isToPK() // TODO it is not necessary primary key it can be unique index
+ && !relationship.isToDependentPK();
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
- return factory.createDropRelationshipToModel(getEntity(), rel);
+ return factory.createDropRelationshipToModel(getEntity(), relationship);
}
@Override
public String getTokenValue() {
if (this.shouldGenerateFkConstraint()) {
- return rel.getSourceEntity().getName() + "->" + rel.getTargetEntityName();
+ return relationship.getSourceEntity().getName() + "->" + relationship.getTargetEntityName();
} else {
return "Skip. No sql representation.";
}
}
- public DbRelationship getRelationship() {
- return rel;
- }
-
@Override
public int compareTo(MergerToken o) {
// add all AddRelationshipToDb to the end.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/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 98a8f3a..a8483b9 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
@@ -36,7 +36,7 @@ public class CreateTableToModel extends AbstractToModelToken.Entity {
* special class name.
* Setting this to <code>null</code>, because by default class name should be generated
*/
- private String objEntityClassName = null; //CayenneDataObject.class.getName();
+ private String objEntityClassName;
public CreateTableToModel(DbEntity entity) {
super("Create Table", entity);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
index 70d1b1c..e92df93 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropColumnToModel.java
@@ -18,9 +18,6 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -29,6 +26,9 @@ import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* A {@link MergerToken} to remove a {@link DbAttribute} from a {@link DbEntity}.
*
@@ -39,10 +39,12 @@ public class DropColumnToModel extends AbstractToModelToken.EntityAndColumn {
super("Drop Column", entity, column);
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createAddColumnToDb(getEntity(), getColumn());
}
+ @Override
public void execute(MergerContext mergerContext) {
// remove relationships mapped to column. duplicate List to prevent
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToDb.java
index 238a44a..3c7dd82 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToDb.java
@@ -18,9 +18,6 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
@@ -28,18 +25,21 @@ import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.DbRelationshipDetected;
+import java.util.Collections;
+import java.util.List;
+
public class DropRelationshipToDb extends AbstractToDbToken.Entity {
- private DbRelationship rel;
+ private DbRelationship relationship;
- public DropRelationshipToDb(DbEntity entity, DbRelationship rel) {
+ public DropRelationshipToDb(DbEntity entity, DbRelationship relationship) {
super("Drop foreign key", entity);
- this.rel = rel;
+ this.relationship = relationship;
}
public String getFkName() {
- if (rel instanceof DbRelationshipDetected) {
- return ((DbRelationshipDetected) rel).getFkName();
+ if (relationship instanceof DbRelationshipDetected) {
+ return ((DbRelationshipDetected) relationship).getFkName();
}
return null;
}
@@ -57,16 +57,11 @@ public class DropRelationshipToDb extends AbstractToDbToken.Entity {
}
public MergerToken createReverse(MergerTokenFactory factory) {
- return factory.createAddRelationshipToModel(getEntity(), rel);
+ return factory.createAddRelationshipToModel(getEntity(), relationship);
}
@Override
public String getTokenValue() {
- return rel.getSourceEntity().getName() + "->" + rel.getTargetEntityName();
- }
-
- public DbRelationship getRelationship() {
- return rel;
+ return relationship.getSourceEntity().getName() + "->" + relationship.getTargetEntityName();
}
-
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
index 082c33a..3908dbd 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropRelationshipToModel.java
@@ -24,28 +24,26 @@ import org.apache.cayenne.map.DbRelationship;
public class DropRelationshipToModel extends AbstractToModelToken.Entity {
- private final DbRelationship rel;
+ private final DbRelationship relationship;
- public DropRelationshipToModel(DbEntity entity, DbRelationship rel) {
+ public DropRelationshipToModel(DbEntity entity, DbRelationship relationship) {
super("Drop db-relationship ", entity);
- this.rel = rel;
+ this.relationship = relationship;
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
- return factory.createAddRelationshipToDb(getEntity(), rel);
+ return factory.createAddRelationshipToDb(getEntity(), relationship);
}
+ @Override
public void execute(MergerContext mergerContext) {
- remove(mergerContext.getDelegate(), rel, true);
+ remove(mergerContext.getDelegate(), relationship, true);
}
@Override
public String getTokenValue() {
- return AddRelationshipToModel.getTokenValue(rel);
- }
-
- public DbRelationship getRelationship() {
- return rel;
+ return AddRelationshipToModel.getTokenValue(relationship);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToDb.java
index 6b76646..3f416c7 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToDb.java
@@ -18,13 +18,13 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbEntity;
+import java.util.ArrayList;
+import java.util.List;
+
public class DropTableToDb extends AbstractToDbToken.Entity {
public DropTableToDb(DbEntity entity) {
@@ -33,7 +33,7 @@ public class DropTableToDb extends AbstractToDbToken.Entity {
@Override
public List<String> createSql(DbAdapter adapter) {
- List<String> sqls = new ArrayList<String>();
+ List<String> sqls = new ArrayList<>();
// TODO: fix. some adapters drop the complete AUTO_PK_SUPPORT here
/*
sqls.addAll(adapter.getPkGenerator().dropAutoPkStatements(
@@ -43,6 +43,7 @@ public class DropTableToDb extends AbstractToDbToken.Entity {
return sqls;
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createCreateTableToModel(getEntity());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
index 3bdd8f3..b6eabee 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DropTableToModel.java
@@ -34,10 +34,12 @@ public class DropTableToModel extends AbstractToModelToken.Entity {
super("Drop Table", entity);
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createCreateTableToDb(getEntity());
}
+ @Override
public void execute(MergerContext mergerContext) {
for (ObjEntity objEntity : getEntity().mappedObjEntities()) {
objEntity.getDataMap().removeObjEntity(objEntity.getName(), true);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DummyReverseToken.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DummyReverseToken.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DummyReverseToken.java
index 54b779b..3f9b35c 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DummyReverseToken.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DummyReverseToken.java
@@ -33,28 +33,28 @@ class DummyReverseToken implements MergerToken {
this.reverse = reverse;
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return reverse;
}
+ @Override
public void execute(MergerContext mergerContext) {
// can not execute
}
+ @Override
public MergeDirection getDirection() {
return reverse.getDirection().reverseDirection();
}
+ @Override
public String getTokenName() {
return "Can not execute the reverse of " + reverse.getTokenName();
}
+ @Override
public String getTokenValue() {
return reverse.getTokenValue();
}
-
- public boolean isReversible() {
- return true;
- }
-
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToDb.java
index c69fb6f..68078c2 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToDb.java
@@ -18,15 +18,15 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import java.util.Collections;
+import java.util.List;
+
/**
* A {@link MergerToken} to add a "allow null" clause to a column.
*
@@ -50,6 +50,7 @@ public class SetAllowNullToDb extends AbstractToDbToken.EntityAndColumn {
return Collections.singletonList(sqlBuffer.toString());
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetNotNullToModel(getEntity(), getColumn());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
index 5d9c890..463f912 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetAllowNullToModel.java
@@ -32,10 +32,12 @@ public class SetAllowNullToModel extends AbstractToModelToken.EntityAndColumn {
super("Set Allow Null", entity, column);
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetNotNullToDb(getEntity(), getColumn());
}
+ @Override
public void execute(MergerContext mergerContext) {
getColumn().setMandatory(false);
mergerContext.getDelegate().dbAttributeModified(getColumn());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToDb.java
index 74a0034..2434dd1 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToDb.java
@@ -18,9 +18,6 @@
*/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
@@ -29,6 +26,9 @@ import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import java.util.Collections;
+import java.util.List;
+
/**
* An {@link MergerToken} to use to set type, length and precision.
*/
@@ -104,16 +104,8 @@ public class SetColumnTypeToDb extends AbstractToDbToken.Entity {
return sb.toString();
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetColumnTypeToModel(getEntity(), columnNew, columnOriginal);
}
-
- public DbAttribute getColumnOriginal() {
- return columnOriginal;
- }
-
- public DbAttribute getColumnNew() {
- return columnNew;
- }
-
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
index cf2b1e0..a960467 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetColumnTypeToModel.java
@@ -34,17 +34,18 @@ public class SetColumnTypeToModel extends AbstractToModelToken.Entity {
private DbAttribute columnOriginal;
private DbAttribute columnNew;
- public SetColumnTypeToModel(DbEntity entity, DbAttribute columnOriginal,
- DbAttribute columnNew) {
+ public SetColumnTypeToModel(DbEntity entity, DbAttribute columnOriginal, DbAttribute columnNew) {
super("Set Column Type", entity);
this.columnOriginal = columnOriginal;
this.columnNew = columnNew;
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetColumnTypeToDb(getEntity(), columnNew, columnOriginal);
}
+ @Override
public void execute(MergerContext mergerContext) {
columnOriginal.setType(columnNew.getType());
columnOriginal.setMaxLength(columnNew.getMaxLength());
@@ -91,12 +92,4 @@ public class SetColumnTypeToModel extends AbstractToModelToken.Entity {
return sb.toString();
}
- public DbAttribute getColumnOriginal() {
- return columnOriginal;
- }
-
- public DbAttribute getColumnNew() {
- return columnNew;
- }
-
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToDb.java
index 169ea34..0591c2a 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToDb.java
@@ -18,15 +18,15 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collections;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import java.util.Collections;
+import java.util.List;
+
/**
* A {@link MergerToken} to add a "not null" clause to a column.
*/
@@ -44,6 +44,7 @@ public class SetNotNullToDb extends AbstractToDbToken.EntityAndColumn {
+ " ALTER COLUMN " + context.quotedName(getColumn()) + " SET NOT NULL");
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetAllowNullToModel(getEntity(), getColumn());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
index 7402f57..dfc9b15 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetNotNullToModel.java
@@ -31,11 +31,13 @@ public class SetNotNullToModel extends AbstractToModelToken.EntityAndColumn {
public SetNotNullToModel(DbEntity entity, DbAttribute column) {
super("Set Not Null", entity, column);
}
-
+
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetAllowNullToDb(getEntity(), getColumn());
}
+ @Override
public void execute(MergerContext mergerContext) {
getColumn().setMandatory(true);
mergerContext.getDelegate().dbAttributeModified(getColumn());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToDb.java
index 8161b87..077b6ef 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToDb.java
@@ -18,17 +18,17 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
public class SetPrimaryKeyToDb extends AbstractToDbToken.Entity {
private Collection<DbAttribute> primaryKeyOriginal;
@@ -79,6 +79,7 @@ public class SetPrimaryKeyToDb extends AbstractToDbToken.Entity {
sqls.add(sql.toString());
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetPrimaryKeyToModel(getEntity(), primaryKeyNew, primaryKeyOriginal,
detectedPrimaryKeyName);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
index 198fe4f..a2198ba 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetPrimaryKeyToModel.java
@@ -18,15 +18,15 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.event.AttributeEvent;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
public class SetPrimaryKeyToModel extends AbstractToModelToken.Entity {
private Collection<DbAttribute> primaryKeyOriginal;
@@ -48,6 +48,7 @@ public class SetPrimaryKeyToModel extends AbstractToModelToken.Entity {
}
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return factory.createSetPrimaryKeyToDb(
getEntity(),
@@ -56,6 +57,7 @@ public class SetPrimaryKeyToModel extends AbstractToModelToken.Entity {
detectedPrimaryKeyName);
}
+ @Override
public void execute(MergerContext mergerContext) {
DbEntity e = getEntity();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/49a6ca39/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetValueForNullToDb.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetValueForNullToDb.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetValueForNullToDb.java
index 1ffdd49..340f2bf 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetValueForNullToDb.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/SetValueForNullToDb.java
@@ -18,13 +18,13 @@
****************************************************************/
package org.apache.cayenne.dbsync.merge;
-import java.util.List;
-
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
+import java.util.List;
+
public class SetValueForNullToDb extends AbstractToDbToken.EntityAndColumn {
@@ -40,6 +40,7 @@ public class SetValueForNullToDb extends AbstractToDbToken.EntityAndColumn {
return valueForNullProvider.createSql(getEntity(), getColumn());
}
+ @Override
public MergerToken createReverse(MergerTokenFactory factory) {
return new DummyReverseToken(this);
}
[4/4] cayenne git commit: CAY-2114 cdbimport: object layer settings
are not respected
Posted by aa...@apache.org.
CAY-2114 cdbimport: object layer settings are not respected
* first fruits of our refactoring - proper naming of new artifacts
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/8ac060fc
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/8ac060fc
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/8ac060fc
Branch: refs/heads/master
Commit: 8ac060fce87751bd6fcac2c5bedb7001f9c06494
Parents: 5a03130
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Fri Sep 30 21:32:57 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Fri Sep 30 22:11:39 2016 +0300
----------------------------------------------------------------------
.../apache/cayenne/tools/DbImporterMojoTest.java | 4 ++--
.../tools/dbimport/testOneToOne.map.xml-result | 16 ++++++++--------
.../dbimport/testUnFlattensManyToMany.map.xml | 6 +++---
.../testUnFlattensManyToMany.map.xml-result | 18 +++++++++---------
4 files changed, 22 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/8ac060fc/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index c2cdc6d..f611df9 100644
--- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -182,11 +182,11 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
/**
* By default many-to-many are flattened during reverse engineering.
* But if a user un-flattens a given N:M manually, we\u2019d like this choice to be preserved on the next run
- *
- * @throws Exception
*/
@Test
public void testUnFlattensManyToMany() throws Exception {
+ // TODO: this should be "xYs" : <db-relationship name="xIes"
+ // TODO: this should be aBs : <db-relationship name="aBArray"
test("testUnFlattensManyToMany");
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/8ac060fc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
index 8c61540..713ad1e 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testOneToOne.map.xml-result
@@ -39,20 +39,20 @@
</obj-entity>
<obj-entity name="PlayerInfo" className="PlayerInfo" dbEntityName="PLAYER_INFO">
</obj-entity>
- <db-relationship name="toPlayer" source="PICK_SCHEDULE" target="PLAYER" toMany="false">
+ <db-relationship name="selectedPlayer" source="PICK_SCHEDULE" target="PLAYER" toMany="false">
<db-attribute-pair source="SELECTED_PLAYER_ID" target="ID"/>
</db-relationship>
- <db-relationship name="pickScheduleArray" source="PLAYER" target="PICK_SCHEDULE" toMany="true">
+ <db-relationship name="pickSchedules" source="PLAYER" target="PICK_SCHEDULE" toMany="true">
<db-attribute-pair source="ID" target="SELECTED_PLAYER_ID"/>
</db-relationship>
- <db-relationship name="toPlayer" source="PLAYER" target="PLAYER_INFO" toDependentPK="true" toMany="false">
+ <db-relationship name="player" source="PLAYER" target="PLAYER_INFO" toDependentPK="true" toMany="false">
<db-attribute-pair source="ID" target="PLAYER_ID"/>
</db-relationship>
- <db-relationship name="toPlayer" source="PLAYER_INFO" target="PLAYER" toMany="false">
+ <db-relationship name="player" source="PLAYER_INFO" target="PLAYER" toMany="false">
<db-attribute-pair source="PLAYER_ID" target="ID"/>
</db-relationship>
- <obj-relationship name="toPlayer" source="PickSchedule" target="Player" deleteRule="Nullify" db-relationship-path="toPlayer"/>
- <obj-relationship name="pickScheduleArray" source="Player" target="PickSchedule" deleteRule="Deny" db-relationship-path="pickScheduleArray"/>
- <obj-relationship name="toPlayer" source="Player" target="PlayerInfo" deleteRule="Nullify" db-relationship-path="toPlayer"/>
- <obj-relationship name="toPlayer" source="PlayerInfo" target="Player" deleteRule="Nullify" db-relationship-path="toPlayer"/>
+ <obj-relationship name="selectedPlayer" source="PickSchedule" target="Player" deleteRule="Nullify" db-relationship-path="selectedPlayer"/>
+ <obj-relationship name="pickSchedules" source="Player" target="PickSchedule" deleteRule="Deny" db-relationship-path="pickSchedules"/>
+ <obj-relationship name="player" source="Player" target="PlayerInfo" deleteRule="Nullify" db-relationship-path="player"/>
+ <obj-relationship name="player" source="PlayerInfo" target="Player" deleteRule="Nullify" db-relationship-path="player"/>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/8ac060fc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
index afb7e5f..569cad1 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml
@@ -38,7 +38,7 @@
</obj-entity>
<obj-entity name="B" className="B" dbEntityName="B">
</obj-entity>
- <db-relationship name="aBArray" source="A" target="A_B" toDependentPK="true" toMany="true">
+ <db-relationship name="aBs" source="A" target="A_B" toDependentPK="true" toMany="true">
<db-attribute-pair source="ID" target="A_ID"/>
</db-relationship>
<db-relationship name="toA" source="A_B" target="A" toMany="false">
@@ -47,9 +47,9 @@
<db-relationship name="toB" source="A_B" target="B" toMany="false">
<db-attribute-pair source="B_ID" target="ID"/>
</db-relationship>
- <db-relationship name="aBArray" source="B" target="A_B" toDependentPK="true" toMany="true">
+ <db-relationship name="aBs" source="B" target="A_B" toDependentPK="true" toMany="true">
<db-attribute-pair source="ID" target="B_ID"/>
</db-relationship>
<obj-relationship name="toA" source="AB" target="A" deleteRule="Nullify" db-relationship-path="toA"/>
- <obj-relationship name="aBArray" source="B" target="AB" deleteRule="Deny" db-relationship-path="aBArray"/>
+ <obj-relationship name="aBs" source="B" target="AB" deleteRule="Deny" db-relationship-path="aBs"/>
</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/8ac060fc/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
index 5fa049f..349ebb9 100644
--- a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
+++ b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testUnFlattensManyToMany.map.xml-result
@@ -57,7 +57,7 @@
</obj-entity>
<obj-entity name="Y" className="org.not.my.home.Y" dbEntityName="Y">
</obj-entity>
- <db-relationship name="aBArray" source="A" target="A_B" toDependentPK="true" toMany="true">
+ <db-relationship name="aBs" source="A" target="A_B" toDependentPK="true" toMany="true">
<db-attribute-pair source="ID" target="A_ID"/>
</db-relationship>
<db-relationship name="toA" source="A_B" target="A" toMany="false">
@@ -66,23 +66,23 @@
<db-relationship name="toB" source="A_B" target="B" toMany="false">
<db-attribute-pair source="B_ID" target="ID"/>
</db-relationship>
- <db-relationship name="aBArray" source="B" target="A_B" toDependentPK="true" toMany="true">
+ <db-relationship name="aBs" source="B" target="A_B" toDependentPK="true" toMany="true">
<db-attribute-pair source="ID" target="B_ID"/>
</db-relationship>
- <db-relationship name="xYArray" source="X" target="X_Y" toDependentPK="true" toMany="true">
+ <db-relationship name="xIes" source="X" target="X_Y" toDependentPK="true" toMany="true">
<db-attribute-pair source="ID" target="X_ID"/>
</db-relationship>
- <db-relationship name="toX" source="X_Y" target="X" toMany="false">
+ <db-relationship name="x" source="X_Y" target="X" toMany="false">
<db-attribute-pair source="X_ID" target="ID"/>
</db-relationship>
- <db-relationship name="toY" source="X_Y" target="Y" toMany="false">
+ <db-relationship name="y" source="X_Y" target="Y" toMany="false">
<db-attribute-pair source="Y_ID" target="ID"/>
</db-relationship>
- <db-relationship name="xYArray" source="Y" target="X_Y" toDependentPK="true" toMany="true">
+ <db-relationship name="xIes" source="Y" target="X_Y" toDependentPK="true" toMany="true">
<db-attribute-pair source="ID" target="Y_ID"/>
</db-relationship>
<obj-relationship name="toA" source="AB" target="A" deleteRule="Nullify" db-relationship-path="toA"/>
- <obj-relationship name="aBArray" source="B" target="AB" deleteRule="Deny" db-relationship-path="aBArray"/>
- <obj-relationship name="yArray" source="X" target="Y" db-relationship-path="xYArray.toY"/>
- <obj-relationship name="xArray" source="Y" target="X" db-relationship-path="xYArray.toX"/>
+ <obj-relationship name="aBs" source="B" target="AB" deleteRule="Deny" db-relationship-path="aBs"/>
+ <obj-relationship name="ies" source="X" target="Y" db-relationship-path="xIes.y"/>
+ <obj-relationship name="xes" source="Y" target="X" db-relationship-path="xIes.x"/>
</data-map>