You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/04/05 12:27:20 UTC
[cayenne] branch master updated: CAY-2559 Modeler: Warning dialog
shows wrong information after changing target entity in dbRelationship
This is an automated email from the ASF dual-hosted git repository.
abulatski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new cfaedd0 CAY-2559 Modeler: Warning dialog shows wrong information after changing target entity in dbRelationship
cfaedd0 is described below
commit cfaedd0f88c5f69647fadd664397437c92d019cd
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Fri Apr 5 15:25:01 2019 +0300
CAY-2559 Modeler: Warning dialog shows wrong information after changing target entity in dbRelationship
---
RELEASE-NOTES.txt | 1 +
.../apache/cayenne/modeler/util/ProjectUtil.java | 29 ++++++++++------------
2 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 701329d..b1eee3a0 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -39,6 +39,7 @@ CAY-2535 Modeler: Impossible to import stored procedure apart from db tables
CAY-2537 Modeler: Schema Generation Complete popup window is hidden
CAY-2544 Possible name clash of ivar and property name in generated class
CAY-2547 CayenneDataObject serialization issue
+CAY-2559 Modeler: Warning dialog shows wrong information after changing target entity in dbRelationship
----------------------------------
Release: 4.1.B1
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java
index a201a75..50154d9 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java
@@ -19,6 +19,11 @@
package org.apache.cayenne.modeler.util;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.map.Attribute;
@@ -37,18 +42,11 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.Procedure;
import org.apache.cayenne.map.ProcedureParameter;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.map.QueryDescriptor;
+import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.util.Util;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Pattern;
-
/**
* Provides utility methods to perform various manipulations with project objects.
*/
@@ -465,19 +463,18 @@ public class ProjectUtil {
DbRelationship relationship) {
DataChannelDescriptor domain = (DataChannelDescriptor) mediator.getProject().getRootNode();
List<ObjAttribute> attributes = new ArrayList<>();
- String[] dbAttrPathByDot;
if (domain != null) {
for (DataMap map : domain.getDataMaps()) {
for (ObjEntity entity : map.getObjEntities()) {
for (ObjAttribute objAttribute : entity.getAttributes()) {
- if(objAttribute.getDbAttributePath() != null) {
- dbAttrPathByDot = objAttribute.getDbAttributePath()
- .split(Pattern.quote("."));
- for (String partOfPath : dbAttrPathByDot) {
- if (partOfPath.equals(relationship.getName())) {
- attributes.add(objAttribute);
+ if(objAttribute.isFlattened()) {
+ objAttribute.getDbPathIterator().forEachRemaining(entry -> {
+ if(entry instanceof DbRelationship) {
+ if(entry.equals(relationship)) {
+ attributes.add(objAttribute);
+ }
}
- }
+ });
}
}
}