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/07/27 07:03:36 UTC
[1/3] cayenne git commit: improvement of vertical inheritance
Repository: cayenne
Updated Branches:
refs/heads/master b1b216863 -> 8e6ba1940
improvement of vertical inheritance
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/cdf40e38
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/cdf40e38
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/cdf40e38
Branch: refs/heads/master
Commit: cdf40e386e7d50feb1653c7a204c65ebacae134a
Parents: 3579ecf
Author: olga <ol...@gmail.com>
Authored: Thu Mar 31 17:14:14 2016 +0300
Committer: olga <ol...@gmail.com>
Committed: Mon Apr 4 13:10:45 2016 +0300
----------------------------------------------------------------------
.../java/org/apache/cayenne/map/DataMap.java | 11 +++++
.../apache/cayenne/util/EntityMergeSupport.java | 48 ++++++++++++++++----
.../ObjEntityAttributeRelationshipTab.java | 9 +++-
.../editor/ObjEntityRelationshipPanel.java | 7 +++
4 files changed, 64 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/cdf40e38/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index a570d66..c3ac20b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -44,6 +44,7 @@ import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+import java.util.HashMap;
import static java.util.Collections.emptyList;
@@ -1400,6 +1401,16 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
return getNameWithPackage(defaultClientPackage, name);
}
+ public Map<String, ObjEntity> getSubclassesForObjEntity(ObjEntity superEntity) {
+ Map<String, ObjEntity> subObjectEntities = new HashMap(5);
+ for (ObjEntity objectEntity : objEntityMap.values()) {
+ if (superEntity.getName().equals(objectEntity.getSuperEntityName())) {
+ subObjectEntities.put(objectEntity.getName(), objectEntity);
+ }
+ }
+ return subObjectEntities;
+ }
+
public ReverseEngineering getReverseEngineering() {
return reverseEngineering;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/cdf40e38/cayenne-server/src/main/java/org/apache/cayenne/util/EntityMergeSupport.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/EntityMergeSupport.java b/cayenne-server/src/main/java/org/apache/cayenne/util/EntityMergeSupport.java
index 7d38cd8..5bcccce 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/EntityMergeSupport.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/EntityMergeSupport.java
@@ -180,29 +180,59 @@ public class EntityMergeSupport {
createObjRelationship(entity, dr, mappedTarget.getName());
}
} else {
- LOG.warn("Can't find ObjEntity for " + dr.getTargetEntityName());
- LOG.warn("Db Relationship (" + dr + ") will have GUESSED Obj Relationship reflection. ");
-
if (targetEntity == null) {
targetEntity = new DbEntity(dr.getTargetEntityName());
}
- createObjRelationship(entity, dr, nameGenerator.createObjEntityName(targetEntity));
+ if (dr.getTargetEntityName() != null) {
+ boolean needGeneratedEntity = createObjRelationship(entity, dr, nameGenerator.createObjEntityName(targetEntity));
+ if (needGeneratedEntity) {
+ LOG.warn("Can't find ObjEntity for " + dr.getTargetEntityName());
+ LOG.warn("Db Relationship (" + dr + ") will have GUESSED Obj Relationship reflection. ");
+ }
+ }
}
}
return true;
}
- private void createObjRelationship(ObjEntity entity, DbRelationship dr, String targetEntityName) {
+ private boolean createObjRelationship(ObjEntity entity, DbRelationship dr, String targetEntityName) {
String relationshipName = nameGenerator.createObjRelationshipName(dr);
relationshipName = DefaultUniqueNameGenerator.generate(NameCheckers.objRelationship, entity, relationshipName);
ObjRelationship or = new ObjRelationship(relationshipName);
or.addDbRelationship(dr);
- or.setSourceEntity(entity);
- or.setTargetEntityName(targetEntityName);
- entity.addRelationship(or);
+ Map<String, ObjEntity> objEntities = entity.getDataMap().getSubclassesForObjEntity(entity);
+
+ boolean hasFlattingAttributes = false;
+ boolean needGeneratedEntity = true;
+
+ if (objEntities.containsKey(targetEntityName)) {
+ needGeneratedEntity = false;
+ }
+
+ for (ObjEntity subObjEntity : objEntities.values()) {
+ for (ObjAttribute objAttribute : subObjEntity.getAttributes()) {
+ String path = objAttribute.getDbAttributePath();
+ if (path != null) {
+ if (path.startsWith(or.getDbRelationshipPath())) {
+ hasFlattingAttributes = true;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!hasFlattingAttributes) {
+ if (needGeneratedEntity) {
+ or.setTargetEntityName(targetEntityName);
+ or.setSourceEntity(entity);
+ }
+
+ entity.addRelationship(or);
+ fireRelationshipAdded(or);
+ }
- fireRelationshipAdded(or);
+ return needGeneratedEntity;
}
private boolean addMissingAttributes(ObjEntity entity) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/cdf40e38/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
index fcdf45d..9406cf8 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeRelationshipTab.java
@@ -61,6 +61,7 @@ public class ObjEntityAttributeRelationshipTab extends JPanel implements ObjEnti
private CutAttributeRelationshipAction cut;
private RemoveAttributeRelationshipAction remove;
private CopyAttributeRelationshipAction copy;
+ private JToolBar toolBar;
public ObjEntityAttributeRelationshipTab(ProjectController mediator) {
this.mediator = mediator;
@@ -95,7 +96,7 @@ public class ObjEntityAttributeRelationshipTab extends JPanel implements ObjEnti
}
private void initToolBar() {
- JToolBar toolBar = new JToolBar();
+ toolBar = new JToolBar();
ActionManager actionManager = Application.getInstance().getActionManager();
toolBar.add(actionManager.getAction(CreateAttributeAction.class).buildButton());
@@ -167,4 +168,8 @@ public class ObjEntityAttributeRelationshipTab extends JPanel implements ObjEnti
attributePanel.currentObjEntityChanged(e);
relationshipPanel.currentObjEntityChanged(e);
}
-}
\ No newline at end of file
+
+ public JToolBar getToolBar() {
+ return toolBar;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/cdf40e38/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
index a9900c4..7a4c2af 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipPanel.java
@@ -225,6 +225,13 @@ public class ObjEntityRelationshipPanel extends JPanel implements ObjEntityDispl
if (e.isUnselectAttributes()) {
table.clearSelection();
}
+
+ ObjEntity objEntity = (ObjEntity) e.getEntity();
+ if (objEntity.getSuperEntity() != null) {
+ parentPanel.getToolBar().getComponentAtIndex(2).setEnabled(false);
+ } else {
+ parentPanel.getToolBar().getComponentAtIndex(2).setEnabled(true);
+ }
}
/**
[3/3] cayenne git commit: CAY-2070 Modeler sync function adds
extraneous ObjRelationships inside the class hierarchy
Posted by aa...@apache.org.
CAY-2070 Modeler sync function adds extraneous ObjRelationships inside the class hierarchy
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/8e6ba194
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/8e6ba194
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/8e6ba194
Branch: refs/heads/master
Commit: 8e6ba19405d12d8554cddb4fb51fd1f23e22820e
Parents: c44ca2a
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Wed Jul 27 09:57:39 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Wed Jul 27 09:57:39 2016 +0300
----------------------------------------------------------------------
docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/8e6ba194/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 88cabdd..630206f 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -30,6 +30,7 @@ Bug Fixes:
CAY-2064 Issue with BeanAccessor for classes with complex inheritance
CAY-2066 Fixes for inner enums handling in ExtendedTypeMap
CAY-2067 Cayenne 4.0 connection pool is occasionally running out of connections
+CAY-2070 Modeler sync function adds extraneous ObjRelationships inside the class hierarchy
CAY-2078 Client code gen bug. Unnecessary DataMap class generation setting datamap gen to false.
CAY-2080 Cayenne doesn't pick up reverse engineering file changes
CAY-2084 ObjectIdQuery - no cache access polymorphism
[2/3] cayenne git commit: Merge branch '92'
Posted by aa...@apache.org.
Merge branch '92'
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/c44ca2a2
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/c44ca2a2
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/c44ca2a2
Branch: refs/heads/master
Commit: c44ca2a22f4717c911355e67076c2de7906b1524
Parents: b1b2168 cdf40e3
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Wed Jul 27 09:52:24 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Wed Jul 27 09:52:24 2016 +0300
----------------------------------------------------------------------
.../java/org/apache/cayenne/map/DataMap.java | 11 +++++
.../apache/cayenne/util/EntityMergeSupport.java | 48 ++++++++++++++++----
.../ObjEntityAttributeRelationshipTab.java | 9 +++-
.../editor/ObjEntityRelationshipPanel.java | 7 +++
4 files changed, 64 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/c44ca2a2/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------