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 2012/10/11 19:20:19 UTC
svn commit: r1397181 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/java/org/apache/cayenne/access/DbArcId.java
main/java/org/apache/cayenne/access/FlattenedArcKey.java
test/java/org/apache/cayenne/access/DbArcIdTest.java
Author: aadamchik
Date: Thu Oct 11 17:20:18 2012
New Revision: 1397181
URL: http://svn.apache.org/viewvc?rev=1397181&view=rev
Log:
iCAY-1747 New algorithm for tracking changes to DbEntities underlying flattened attributes and relationships
using DbRelationship instead of 'name' in DbArcId
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbArcId.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbArcIdTest.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbArcId.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbArcId.java?rev=1397181&r1=1397180&r2=1397181&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbArcId.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbArcId.java Thu Oct 11 17:20:18 2012
@@ -2,6 +2,7 @@ package org.apache.cayenne.access;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.util.EqualsBuilder;
import org.apache.cayenne.util.HashCodeBuilder;
@@ -18,23 +19,23 @@ final class DbArcId {
private DbEntity entity;
private ObjectId sourceId;
- private String incomingArc;
+ private DbRelationship incomingArc;
- DbArcId(DbEntity entity, ObjectId sourceId, String incomingArc) {
+ DbArcId(DbEntity entity, ObjectId sourceId, DbRelationship incomingArc) {
this.entity = entity;
this.sourceId = sourceId;
this.incomingArc = incomingArc;
}
-
+
DbEntity getEntity() {
return entity;
}
-
+
ObjectId getSourceId() {
return sourceId;
}
-
- String getIncominArc() {
+
+ DbRelationship getIncominArc() {
return incomingArc;
}
@@ -44,7 +45,7 @@ final class DbArcId {
if (this.hashCode == 0) {
HashCodeBuilder builder = new HashCodeBuilder(3, 5);
builder.append(sourceId);
- builder.append(incomingArc);
+ builder.append(incomingArc.getName());
this.hashCode = builder.toHashCode();
}
@@ -65,6 +66,7 @@ final class DbArcId {
DbArcId id = (DbArcId) object;
return new EqualsBuilder().append(sourceId, id.sourceId)
- .append(incomingArc, id.incomingArc).isEquals();
+ .append(incomingArc.getName(), id.incomingArc.getName())
+ .isEquals();
}
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java?rev=1397181&r1=1397180&r2=1397181&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java Thu Oct 11 17:20:18 2012
@@ -78,9 +78,8 @@ final class FlattenedArcKey {
+ dbRelationships.get(1));
}
- id1 = new DbArcId((DbEntity) r1.getTargetEntity(), sourceId,
- r1.getName());
- id2 = new DbArcId(id1.getEntity(), destinationId, r2.getName());
+ id1 = new DbArcId((DbEntity) r1.getTargetEntity(), sourceId, r1);
+ id2 = new DbArcId(id1.getEntity(), destinationId, r2);
}
/**
@@ -282,7 +281,8 @@ final class FlattenedArcKey {
.compareTo(id2.getSourceId().getEntityName());
if (compare == 0) {
- compare = id1.getIncominArc().compareTo(id2.getIncominArc());
+ compare = id1.getIncominArc().getName()
+ .compareTo(id2.getIncominArc().getName());
if (compare == 0) {
// since ordering is mostly important for detecting equivalent
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbArcIdTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbArcIdTest.java?rev=1397181&r1=1397180&r2=1397181&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbArcIdTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbArcIdTest.java Thu Oct 11 17:20:18 2012
@@ -4,43 +4,52 @@ import junit.framework.TestCase;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
public class DbArcIdTest extends TestCase {
public void testHashCode() {
-
+
DbEntity e = new DbEntity("X");
- DbArcId id1 = new DbArcId(e, new ObjectId("x", "k", "v"), "r1");
+ DbArcId id1 = new DbArcId(e, new ObjectId("x", "k", "v"),
+ new DbRelationship("r1"));
int h1 = id1.hashCode();
assertEquals(h1, id1.hashCode());
assertEquals(h1, id1.hashCode());
- DbArcId id1_eq = new DbArcId(e, new ObjectId("x", "k", "v"), "r1");
+ DbArcId id1_eq = new DbArcId(e, new ObjectId("x", "k", "v"),
+ new DbRelationship("r1"));
assertEquals(h1, id1_eq.hashCode());
- DbArcId id2 = new DbArcId(e, new ObjectId("x", "k", "v"), "r2");
+ DbArcId id2 = new DbArcId(e, new ObjectId("x", "k", "v"),
+ new DbRelationship("r2"));
assertFalse(h1 == id2.hashCode());
- DbArcId id3 = new DbArcId(e, new ObjectId("y", "k", "v"), "r1");
+ DbArcId id3 = new DbArcId(e, new ObjectId("y", "k", "v"),
+ new DbRelationship("r1"));
assertFalse(h1 == id3.hashCode());
}
public void testEquals() {
DbEntity e = new DbEntity("X");
-
- DbArcId id1 = new DbArcId(e, new ObjectId("x", "k", "v"), "r1");
+
+ DbArcId id1 = new DbArcId(e, new ObjectId("x", "k", "v"),
+ new DbRelationship("r1"));
assertTrue(id1.equals(id1));
- DbArcId id1_eq = new DbArcId(e, new ObjectId("x", "k", "v"), "r1");
+ DbArcId id1_eq = new DbArcId(e, new ObjectId("x", "k", "v"),
+ new DbRelationship("r1"));
assertTrue(id1.equals(id1_eq));
assertTrue(id1_eq.equals(id1));
- DbArcId id2 = new DbArcId(e, new ObjectId("x", "k", "v"), "r2");
+ DbArcId id2 = new DbArcId(e, new ObjectId("x", "k", "v"),
+ new DbRelationship("r2"));
assertFalse(id1.equals(id2));
- DbArcId id3 = new DbArcId(e, new ObjectId("y", "k", "v"), "r1");
+ DbArcId id3 = new DbArcId(e, new ObjectId("y", "k", "v"),
+ new DbRelationship("r1"));
assertFalse(id1.equals(id3));
assertFalse(id1.equals(new Object()));