You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by dk...@apache.org on 2011/08/16 13:53:54 UTC
svn commit: r1158213 -
/cayenne/main/trunk/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjRelationshipValidator.java
Author: dkazimirchyk
Date: Tue Aug 16 11:53:54 2011
New Revision: 1158213
URL: http://svn.apache.org/viewvc?rev=1158213&view=rev
Log:
CAY-1601 Modeler: warn user if ObjRelationhip structure in model is not supported
added warnings to the modeler
Modified:
cayenne/main/trunk/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjRelationshipValidator.java
Modified: cayenne/main/trunk/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjRelationshipValidator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjRelationshipValidator.java?rev=1158213&r1=1158212&r2=1158213&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjRelationshipValidator.java (original)
+++ cayenne/main/trunk/framework/cayenne-project/src/main/java/org/apache/cayenne/project/validation/ObjRelationshipValidator.java Tue Aug 16 11:53:54 2011
@@ -133,6 +133,36 @@ class ObjRelationshipValidator extends C
}
}
}
+
+ // check for relationships with same source and target entities
+ ObjEntity entity = (ObjEntity) relationship.getSourceEntity();
+ for (ObjRelationship rel : entity.getRelationships()) {
+ if (relationship.getDbRelationshipPath().equals(rel.getDbRelationshipPath())) {
+ if (relationship != rel &&
+ relationship.getTargetEntity() == rel.getTargetEntity() &&
+ relationship.getSourceEntity() == rel.getSourceEntity()) {
+ addFailure(
+ validationResult,
+ relationship,
+ "ObjectRelationship '%s' duplicates relationship '%s'",
+ toString(relationship),
+ toString(rel));
+ }
+ }
+ }
+
+ // check for invalid relationships in inherited entities
+ if (relationship.getReverseRelationship() != null) {
+ ObjRelationship revRel = relationship.getReverseRelationship();
+ if (relationship.getSourceEntity() != revRel.getTargetEntity()
+ || relationship.getTargetEntity() != revRel.getSourceEntity()) {
+ addFailure(
+ validationResult,
+ revRel,
+ "Usage of super entity's relationships '%s' as reversed relationships for sub entity is discouraged",
+ toString(revRel));
+ }
+ }
}
private String toString(ObjRelationship relationship) {