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 12:03:44 UTC
svn commit: r1476950 - in /cayenne/main/branches/STABLE-3.1:
docs/doc/src/main/resources/RELEASE-NOTES.txt
framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java
Author: mgentry
Date: Mon Apr 29 10:03:44 2013
New Revision: 1476950
URL: http://svn.apache.org/r1476950
Log:
Adds CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns.
Modified:
cayenne/main/branches/STABLE-3.1/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/branches/STABLE-3.1/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java
Modified: cayenne/main/branches/STABLE-3.1/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1476950&r1=1476949&r2=1476950&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.1/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/branches/STABLE-3.1/docs/doc/src/main/resources/RELEASE-NOTES.txt Mon Apr 29 10:03:44 2013
@@ -11,6 +11,10 @@ https://issues.apache.org/jira/browse/CA
Release: 3.1B3
Date: not yet released
----------------------------------
+Changes/New Features Since 3.1B1:
+
+CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
+
Bug Fixes Since 3.1B2:
CAY-1794 Duplicate attributes in discriminator columns of PersistentDescriptor
Modified: cayenne/main/branches/STABLE-3.1/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java?rev=1476950&r1=1476949&r2=1476950&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.1/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java (original)
+++ cayenne/main/branches/STABLE-3.1/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjEntityValidator.java Mon Apr 29 10:03:44 2013
@@ -18,8 +18,12 @@
****************************************************************/
package org.apache.cayenne.project.validation;
+import java.util.HashSet;
+import java.util.Set;
+
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.validation.ValidationResult;
@@ -31,10 +35,10 @@ class ObjEntityValidator extends Configu
validateName(entity, validationResult);
validateClassName(entity, validationResult);
validateSuperClassName(entity, validationResult);
+ validateAttributes(entity, validationResult);
// validate DbEntity presence
if (entity.getDbEntity() == null && !entity.isAbstract()) {
-
addFailure(
validationResult,
entity,
@@ -108,7 +112,7 @@ class ObjEntityValidator extends Configu
entity.getName(),
superClassName);
}
-
+
if (entity.getDbEntityName() != null && entity.getSuperEntityName() != null) {
addFailure(
validationResult,
@@ -124,6 +128,25 @@ class ObjEntityValidator extends Configu
}
}
+ private void validateAttributes(ObjEntity entity, ValidationResult validationResult) {
+ 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)) {
+ addFailure(validationResult,
+ entity,
+ "ObjEntity contains duplicate DbAttribute mappings (%s)",
+ dbAttributeName);
+ }
+
+ dbAttributeNames.add(dbAttributeName);
+ }
+ }
+ }
+
void validateName(ObjEntity entity, ValidationResult validationResult) {
String name = entity.getName();