You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by mg...@apache.org on 2013/04/29 11:26:11 UTC

svn commit: r1476934 - in /cayenne/main/branches/STABLE-3.0: docs/doc/src/main/resources/RELEASE-NOTES.txt framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/ObjEntityValidator.java

Author: mgentry
Date: Mon Apr 29 09:26:11 2013
New Revision: 1476934

URL: http://svn.apache.org/r1476934
Log:
Adds CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns.

Modified:
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt
    cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/ObjEntityValidator.java

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1476934&r1=1476933&r2=1476934&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/RELEASE-NOTES.txt Mon Apr 29 09:26:11 2013
@@ -16,6 +16,7 @@ Changes/New Features Since 3.0.2:
 CAY-1584 Improve Cayenne modeler re-ordering named query in the cayenne map xml
 CAY-1590 DDL generation without a live datasource
 CAY-1605 Switch Cayenne to use unified Maven repository
+CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
 
 Bug Fixes Since 3.0.2:
 

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/ObjEntityValidator.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/ObjEntityValidator.java?rev=1476934&r1=1476933&r2=1476934&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/ObjEntityValidator.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/ObjEntityValidator.java Mon Apr 29 09:26:11 2013
@@ -19,8 +19,12 @@
 
 package org.apache.cayenne.project.validator;
 
+import java.util.HashSet;
+import java.util.Set;
+
 import org.apache.cayenne.access.DataDomain;
 import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.project.ProjectPath;
 import org.apache.cayenne.util.Util;
@@ -42,6 +46,7 @@ public class ObjEntityValidator extends 
         validateName(ent, path, validator);
         validateClassName(ent, path, validator);
         validateSuperClassName(ent, path, validator);
+        validateAttributes(ent, path, validator);
 
         // validate DbEntity presence
         if (ent.getDbEntity() == null && !ent.isAbstract()) {
@@ -107,6 +112,23 @@ public class ObjEntityValidator extends 
         }
     }
 
+
+    private void validateAttributes(ObjEntity entity, ProjectPath path, Validator validator) {
+        Set<String> dbAttributeNames = new HashSet<String>();
+
+        for (ObjAttribute attribute : entity.getAttributes()) {
+            String dbAttributeName = attribute.getDbAttribute().getName();
+
+            if (Util.isEmptyString(dbAttributeName) == false) {
+                if (dbAttributeNames.contains(dbAttributeName)) {
+                    validator.registerWarning("ObjEntity contains duplicate DbAttribute mappings (" + dbAttributeName + ")", path);
+                }
+
+                dbAttributeNames.add(dbAttributeName);
+            }
+        }
+    }
+
     protected void validateName(ObjEntity entity, ProjectPath path, Validator validator) {
         String name = entity.getName();