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 2011/11/13 14:49:36 UTC
svn commit: r1201425 - in /cayenne/main/trunk: docs/doc/src/main/resources/
framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/
framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/ref/
framework/cayenne-lifecyc...
Author: aadamchik
Date: Sun Nov 13 13:49:35 2011
New Revision: 1201425
URL: http://svn.apache.org/viewvc?rev=1201425&view=rev
Log:
CAY-1639 cayenne-lifecycle: don't call String representation of ObjectId a UUID
actually the scope of refactoring ended up being wider than what's in Jira - renaming prompted reorg
of a few packages, making everything more complact and easier to understand
Added:
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/uuid/UuidCoder.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchFault.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchFault.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchSourceItem.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchSourceItem.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdFault.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidFault.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/update/UuidPropagatedValueFactory.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationship.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationship.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipBatchFaultingStrategy.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipBatchFaultingStrategy.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFaultingStrategy.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFaultingStrategy.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFilter.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFilter.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandler.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandler.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/EntityIdCoderTest.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/uuid/UuidCoderTest.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/IdCoderTest.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/ref/ReferenceableHandlerTest.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandlerTest.java
- copied, changed from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandlerTest.java
Removed:
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/ref/
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchFault.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchSourceItem.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidFault.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationship.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipBatchFaultingStrategy.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFaultingStrategy.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFilter.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandler.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/update/
cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/uuid/
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/ref/
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandlerTest.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/uuid/
Modified:
cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/db/UuidRoot1.java
cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorterTest.java
Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1201425&r1=1201424&r2=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Sun Nov 13 13:49:35 2011
@@ -18,6 +18,7 @@ CAY-1608 Implement constructor injection
CAY-1618 Create database adapters instances with proper injection
CAY-1637 [PATCH] DataContextFactory is cumbersome to customize
CAY-1638 [PATCH] Can't disable validation for CayenneContext
+CAY-1639 cayenne-lifecycle: don't call String representation of ObjectId a UUID
Bug Fixes Since 3.1M3:
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/uuid/UuidCoder.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/uuid/UuidCoder.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/uuid/UuidCoder.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java Sun Nov 13 13:49:35 2011
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.lifecycle.uuid;
+package org.apache.cayenne.lifecycle.id;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
@@ -37,11 +37,11 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.util.Util;
/**
- * An object to encode/decode persistent objects UUIDs.
+ * An object to encode/decode ObjectIds for a single mapped entity.
*
* @since 3.1
*/
-public class UuidCoder {
+public class EntityIdCoder {
static final String UUID_SEPARATOR = ":";
@@ -49,24 +49,25 @@ public class UuidCoder {
private SortedMap<String, Converter> converters;
private int idSize;
- public static String getEntityName(String uuid) {
- int separator = uuid.indexOf(UUID_SEPARATOR);
- if (separator <= 0 || separator == uuid.length() - 1) {
- throw new IllegalArgumentException("Invalid uuid: " + uuid);
+ public static String getEntityName(String id) {
+ int separator = id.indexOf(UUID_SEPARATOR);
+ if (separator <= 0 || separator == id.length() - 1) {
+ throw new IllegalArgumentException("Invalid uuid: " + id);
}
- return uuid.substring(0, separator);
+ return id.substring(0, separator);
}
- public UuidCoder(ObjEntity entity) {
+ public EntityIdCoder(ObjEntity entity) {
this.entityName = entity.getName();
this.converters = new TreeMap<String, Converter>();
for (ObjAttribute attribute : entity.getAttributes()) {
if (attribute.isPrimaryKey()) {
- converters.put(attribute.getDbAttributeName(), create(attribute
- .getJavaClass()));
+ converters.put(
+ attribute.getDbAttributeName(),
+ create(attribute.getJavaClass()));
}
}
@@ -92,7 +93,10 @@ public class UuidCoder {
this.idSize = (int) Math.ceil(converters.size() / 0.75d);
}
- public String toUuid(ObjectId id) {
+ /**
+ * Returns a consistent String representation of the ObjectId
+ */
+ public String toStringId(ObjectId id) {
if (id.isTemporary() && !id.isReplacementIdAttached()) {
throw new IllegalArgumentException(
Added: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java?rev=1201425&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java (added)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java Sun Nov 13 13:49:35 2011
@@ -0,0 +1,87 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.lifecycle.id;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.Persistent;
+import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.map.ObjEntity;
+
+/**
+ * An object to encode/decode ObjectIds for all entities found in a mapping namespace.
+ *
+ * @since 3.1
+ */
+public class IdCoder {
+
+ protected EntityResolver entityResolver;
+ protected Map<String, EntityIdCoder> coders;
+
+ public IdCoder(EntityResolver entityResolver) {
+ this.entityResolver = entityResolver;
+ this.coders = new ConcurrentHashMap<String, EntityIdCoder>();
+ }
+
+ /**
+ * Returns an ObjectId for a given String ID.
+ */
+ public ObjectId getObjectId(String id) {
+
+ String entityName = EntityIdCoder.getEntityName(id);
+ EntityIdCoder coder = getCoder(entityName);
+ return coder.toObjectId(id);
+ }
+
+ public String getStringId(Persistent referenceable) {
+
+ if (referenceable == null) {
+ throw new NullPointerException("Null object");
+ }
+
+ ObjectId id = referenceable.getObjectId();
+
+ EntityIdCoder coder = getCoder(id.getEntityName());
+ return coder.toStringId(id);
+ }
+
+ protected EntityIdCoder getCoder(String entityName) {
+ EntityIdCoder coder = coders.get(entityName);
+ if (coder == null) {
+
+ coder = createCoder(entityName);
+ coders.put(entityName, coder);
+ }
+
+ return coder;
+ }
+
+ protected EntityIdCoder createCoder(String entityName) {
+ ObjEntity entity = entityResolver.getObjEntity(entityName);
+ if (entity == null) {
+ throw new IllegalArgumentException("Entity '"
+ + entityName
+ + "' is not mapped");
+ }
+
+ return new EntityIdCoder(entity);
+ }
+}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchFault.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchFault.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchFault.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchFault.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchFault.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchFault.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchFault.java Sun Nov 13 13:49:35 2011
@@ -29,24 +29,25 @@ import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.lifecycle.uuid.UuidCoder;
+import org.apache.cayenne.lifecycle.id.EntityIdCoder;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.query.ObjectIdQuery;
import org.apache.cayenne.query.SelectQuery;
/**
- * Provides lazy faulting functionality for a map of objects identified by UUID.
+ * Provides lazy faulting functionality for a map of objects identified by String
+ * ObjectId.
*
* @since 3.1
*/
-class UuidBatchFault {
+class ObjectIdBatchFault {
private ObjectContext context;
- private List<UuidBatchSourceItem> sources;
+ private List<ObjectIdBatchSourceItem> sources;
private volatile Map<String, Object> resolved;
- UuidBatchFault(ObjectContext context, List<UuidBatchSourceItem> sources) {
+ ObjectIdBatchFault(ObjectContext context, List<ObjectIdBatchSourceItem> sources) {
this.context = context;
this.sources = sources;
}
@@ -77,11 +78,11 @@ class UuidBatchFault {
// simple case of one query, handle it separately for performance reasons
if (sources.size() == 1) {
- String uuid = sources.get(0).getUuid();
- String entityName = UuidCoder.getEntityName(uuid);
+ String uuid = sources.get(0).getId();
+ String entityName = EntityIdCoder.getEntityName(uuid);
ObjEntity entity = resolver.getObjEntity(entityName);
- ObjectId id = new UuidCoder(entity).toObjectId(uuid);
+ ObjectId id = new EntityIdCoder(entity).toObjectId(uuid);
Object object = Cayenne.objectForQuery(context, new ObjectIdQuery(id));
if (object == null) {
@@ -93,17 +94,17 @@ class UuidBatchFault {
}
Map<String, SelectQuery> queriesByEntity = new HashMap<String, SelectQuery>();
- Map<String, UuidCoder> codersByEntity = new HashMap<String, UuidCoder>();
+ Map<String, EntityIdCoder> codersByEntity = new HashMap<String, EntityIdCoder>();
- for (UuidBatchSourceItem source : sources) {
+ for (ObjectIdBatchSourceItem source : sources) {
- String uuid = source.getUuid();
- String entityName = UuidCoder.getEntityName(uuid);
- UuidCoder coder = codersByEntity.get(entityName);
+ String uuid = source.getId();
+ String entityName = EntityIdCoder.getEntityName(uuid);
+ EntityIdCoder coder = codersByEntity.get(entityName);
SelectQuery query;
if (coder == null) {
- coder = new UuidCoder(resolver.getObjEntity(entityName));
+ coder = new EntityIdCoder(resolver.getObjEntity(entityName));
codersByEntity.put(entityName, coder);
query = new SelectQuery(entityName);
@@ -125,10 +126,10 @@ class UuidBatchFault {
for (SelectQuery query : queriesByEntity.values()) {
- UuidCoder coder = codersByEntity.get(query.getRoot());
+ EntityIdCoder coder = codersByEntity.get(query.getRoot());
List<DataObject> objects = context.performQuery(query);
for (DataObject object : objects) {
- String uuid = coder.toUuid(object.getObjectId());
+ String uuid = coder.toStringId(object.getObjectId());
results.put(uuid, object);
}
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchSourceItem.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchSourceItem.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchSourceItem.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchSourceItem.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchSourceItem.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidBatchSourceItem.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdBatchSourceItem.java Sun Nov 13 13:49:35 2011
@@ -20,27 +20,27 @@ package org.apache.cayenne.lifecycle.rel
import org.apache.cayenne.DataObject;
-final class UuidBatchSourceItem {
+final class ObjectIdBatchSourceItem {
private final DataObject object;
- private final String uuid;
- private final String uuidRelationship;
+ private final String id;
+ private final String objectIdRelationship;
- UuidBatchSourceItem(DataObject object, String uuid, String uuidRelationship) {
+ ObjectIdBatchSourceItem(DataObject object, String id, String objectIdRelationship) {
this.object = object;
- this.uuid = uuid;
- this.uuidRelationship = uuidRelationship;
+ this.id = id;
+ this.objectIdRelationship = objectIdRelationship;
}
DataObject getObject() {
return object;
}
- String getUuidRelationship() {
- return uuidRelationship;
+ String getObjectIdRelationship() {
+ return objectIdRelationship;
}
- String getUuid() {
- return uuid;
+ String getId() {
+ return id;
}
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdFault.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidFault.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdFault.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdFault.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidFault.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidFault.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdFault.java Sun Nov 13 13:49:35 2011
@@ -24,18 +24,18 @@ import org.apache.cayenne.Persistent;
/**
* @since 3.1
*/
-class UuidFault extends Fault {
+class ObjectIdFault extends Fault {
- private String uuid;
- private UuidBatchFault batchFault;
+ private String id;
+ private ObjectIdBatchFault batchFault;
- UuidFault(UuidBatchFault batchFault, String uuid) {
+ ObjectIdFault(ObjectIdBatchFault batchFault, String id) {
this.batchFault = batchFault;
- this.uuid = uuid;
+ this.id = id;
}
@Override
public Object resolveFault(Persistent sourceObject, String relationshipName) {
- return uuid != null ? batchFault.getObjects().get(uuid) : null;
+ return id != null ? batchFault.getObjects().get(id) : null;
}
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/update/UuidPropagatedValueFactory.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/update/UuidPropagatedValueFactory.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/update/UuidPropagatedValueFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdPropagatedValueFactory.java Sun Nov 13 13:49:35 2011
@@ -16,25 +16,26 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.lifecycle.relationship.update;
+package org.apache.cayenne.lifecycle.relationship;
-import org.apache.cayenne.lifecycle.ref.ReferenceableHandler;
+import org.apache.cayenne.Persistent;
+import org.apache.cayenne.lifecycle.id.IdCoder;
import org.apache.commons.collections.Factory;
/**
* @since 3.1
*/
-public class UuidPropagatedValueFactory implements Factory {
+class ObjectIdPropagatedValueFactory implements Factory {
- private ReferenceableHandler referenceableHandler;
- private Object to;
+ private IdCoder referenceableHandler;
+ private Persistent to;
- public UuidPropagatedValueFactory(ReferenceableHandler referenceableHandler, Object to) {
+ ObjectIdPropagatedValueFactory(IdCoder referenceableHandler, Persistent to) {
this.referenceableHandler = referenceableHandler;
this.to = to;
}
public Object create() {
- return referenceableHandler.getUuid(to);
+ return referenceableHandler.getStringId(to);
}
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationship.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationship.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationship.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationship.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationship.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationship.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationship.java Sun Nov 13 13:49:35 2011
@@ -26,18 +26,19 @@ import java.lang.annotation.RetentionPol
import java.lang.annotation.Target;
/**
- * Defines a "virtual" read-only to-one relationship based on an FK that is a UUID. This
- * way a related object can be of any entity type.
+ * Defines a "virtual" read-only to-one relationship based on an FK that is a character
+ * representation of Cayenne ObjectId. A target object of this relationship can be of any
+ * entity type.
*
* @since 3.1
*/
-@Target( {
+@Target({
ElementType.TYPE
})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
-public @interface UuidRelationship {
+public @interface ObjectIdRelationship {
/**
* Returns the name of the property of the source entity of the relationship that
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipBatchFaultingStrategy.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipBatchFaultingStrategy.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipBatchFaultingStrategy.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipBatchFaultingStrategy.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipBatchFaultingStrategy.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipBatchFaultingStrategy.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipBatchFaultingStrategy.java Sun Nov 13 13:49:35 2011
@@ -24,67 +24,67 @@ import java.util.List;
import org.apache.cayenne.DataObject;
/**
- * A faulting strategy that does batch-faulting of related objects whenever a first UUID
- * relationship is accessed.
+ * A faulting strategy that does batch-faulting of related objects whenever a first
+ * ObjectId relationship is accessed.
*
* @since 3.1
*/
-public class UuidRelationshipBatchFaultingStrategy implements
- UuidRelationshipFaultingStrategy {
+public class ObjectIdRelationshipBatchFaultingStrategy implements
+ ObjectIdRelationshipFaultingStrategy {
- private ThreadLocal<List<UuidBatchSourceItem>> batchSources;
+ private ThreadLocal<List<ObjectIdBatchSourceItem>> batchSources;
- public UuidRelationshipBatchFaultingStrategy() {
- this.batchSources = new ThreadLocal<List<UuidBatchSourceItem>>();
+ public ObjectIdRelationshipBatchFaultingStrategy() {
+ this.batchSources = new ThreadLocal<List<ObjectIdBatchSourceItem>>();
}
public void afterObjectLoaded(DataObject object) {
- String uuidProperty = uuidPropertyName(object);
- String uuidRelationship = uuidRelationshipName(uuidProperty);
+ String uuidProperty = objectIdPropertyName(object);
+ String uuidRelationship = objectIdRelationshipName(uuidProperty);
String uuid = (String) object.readProperty(uuidProperty);
if (uuid == null) {
object.writePropertyDirectly(uuidRelationship, null);
}
else {
- List<UuidBatchSourceItem> sources = batchSources.get();
+ List<ObjectIdBatchSourceItem> sources = batchSources.get();
if (sources == null) {
- sources = new ArrayList<UuidBatchSourceItem>();
+ sources = new ArrayList<ObjectIdBatchSourceItem>();
batchSources.set(sources);
}
- sources.add(new UuidBatchSourceItem(object, uuid, uuidRelationship));
+ sources.add(new ObjectIdBatchSourceItem(object, uuid, uuidRelationship));
}
}
public void afterQuery() {
- List<UuidBatchSourceItem> sources = batchSources.get();
+ List<ObjectIdBatchSourceItem> sources = batchSources.get();
if (sources != null) {
batchSources.set(null);
- UuidBatchFault batchFault = new UuidBatchFault(sources
+ ObjectIdBatchFault batchFault = new ObjectIdBatchFault(sources
.get(0)
.getObject()
.getObjectContext(), sources);
- for (UuidBatchSourceItem source : sources) {
+ for (ObjectIdBatchSourceItem source : sources) {
source.getObject().writePropertyDirectly(
- source.getUuidRelationship(),
- new UuidFault(batchFault, source.getUuid()));
+ source.getObjectIdRelationship(),
+ new ObjectIdFault(batchFault, source.getId()));
}
}
}
- String uuidRelationshipName(String uuidPropertyName) {
+ String objectIdRelationshipName(String uuidPropertyName) {
return "cay:related:" + uuidPropertyName;
}
- String uuidPropertyName(DataObject object) {
+ String objectIdPropertyName(DataObject object) {
- UuidRelationship annotation = object.getClass().getAnnotation(
- UuidRelationship.class);
+ ObjectIdRelationship annotation = object.getClass().getAnnotation(
+ ObjectIdRelationship.class);
if (annotation == null) {
throw new IllegalArgumentException(
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFaultingStrategy.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFaultingStrategy.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFaultingStrategy.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFaultingStrategy.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFaultingStrategy.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFaultingStrategy.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFaultingStrategy.java Sun Nov 13 13:49:35 2011
@@ -21,11 +21,11 @@ package org.apache.cayenne.lifecycle.rel
import org.apache.cayenne.DataObject;
/**
- * An abstract strategy for resolving UUID relationships.
+ * An abstract strategy for resolving ObjectId relationships.
*
* @since 3.1
*/
-public interface UuidRelationshipFaultingStrategy {
+public interface ObjectIdRelationshipFaultingStrategy {
void afterObjectLoaded(DataObject object);
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFilter.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFilter.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFilter.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFilter.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFilter.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipFilter.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipFilter.java Sun Nov 13 13:49:35 2011
@@ -18,8 +18,6 @@
****************************************************************/
package org.apache.cayenne.lifecycle.relationship;
-import java.util.Collections;
-
import org.apache.cayenne.DataChannel;
import org.apache.cayenne.DataChannelFilter;
import org.apache.cayenne.DataChannelFilterChain;
@@ -30,48 +28,23 @@ import org.apache.cayenne.annotation.Pos
import org.apache.cayenne.annotation.PostPersist;
import org.apache.cayenne.annotation.PostUpdate;
import org.apache.cayenne.graph.GraphDiff;
-import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.query.Query;
/**
- * A {@link DataChannelFilter} that implements UUID relationships read functionality.
+ * A {@link DataChannelFilter} that implements ObjectId relationships read functionality.
*
* @since 3.1
*/
-public class UuidRelationshipFilter implements DataChannelFilter {
+public class ObjectIdRelationshipFilter implements DataChannelFilter {
- private UuidRelationshipFaultingStrategy faultingStrategy;
+ private ObjectIdRelationshipFaultingStrategy faultingStrategy;
public void init(DataChannel channel) {
this.faultingStrategy = createFaultingStrategy();
- registerUuidRelationships(channel);
- }
-
- protected void registerUuidRelationships(DataChannel channel) {
-
- // TODO: create a DI-managed chain of mapping post processors, and extract this
- // code to a UuidRelationshipModule. The following code in DataDomainProvider
- // should be in the standard chain, and this method code - in an extension
- // dataDomain.getEntityResolver().applyDBLayerDefaults();
- // dataDomain.getEntityResolver().applyObjectLayerDefaults();
-
- EntityResolver resolver = channel.getEntityResolver();
- for (ObjEntity entity : resolver.getObjEntities()) {
-
- Class<?> type = resolver
- .getClassDescriptor(entity.getName())
- .getObjectClass();
-
- UuidRelationship a = type.getAnnotation(UuidRelationship.class);
- if(a != null) {
-
- }
- }
}
- protected UuidRelationshipFaultingStrategy createFaultingStrategy() {
- return new UuidRelationshipBatchFaultingStrategy();
+ protected ObjectIdRelationshipFaultingStrategy createFaultingStrategy() {
+ return new ObjectIdRelationshipBatchFaultingStrategy();
}
public GraphDiff onSync(
@@ -96,8 +69,8 @@ public class UuidRelationshipFilter impl
}
}
- @PostUpdate(entityAnnotations = UuidRelationship.class)
- @PostPersist(entityAnnotations = UuidRelationship.class)
+ @PostUpdate(entityAnnotations = ObjectIdRelationship.class)
+ @PostPersist(entityAnnotations = ObjectIdRelationship.class)
void postCommit(DataObject object) {
// invalidate after commit to ensure UUID property is re-read...
object.getObjectContext().invalidateObjects(object);
@@ -107,7 +80,7 @@ public class UuidRelationshipFilter impl
* A lifecycle callback method that delegates object post load event processing to the
* underlying faulting strategy.
*/
- @PostLoad(entityAnnotations = UuidRelationship.class)
+ @PostLoad(entityAnnotations = ObjectIdRelationship.class)
void postLoad(DataObject object) {
faultingStrategy.afterObjectLoaded(object);
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandler.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandler.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandler.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandler.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandler.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandler.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandler.java Sun Nov 13 13:49:35 2011
@@ -19,28 +19,27 @@
package org.apache.cayenne.lifecycle.relationship;
import org.apache.cayenne.DataObject;
-import org.apache.cayenne.lifecycle.ref.ReferenceableHandler;
-import org.apache.cayenne.lifecycle.relationship.update.UuidPropagatedValueFactory;
+import org.apache.cayenne.lifecycle.id.IdCoder;
/**
* @since 3.1
*/
-public class UuidRelationshipHandler {
+public class ObjectIdRelationshipHandler {
- protected ReferenceableHandler referenceableHandler;
+ protected IdCoder referenceableHandler;
- public UuidRelationshipHandler(ReferenceableHandler referenceableHandler) {
+ public ObjectIdRelationshipHandler(IdCoder referenceableHandler) {
this.referenceableHandler = referenceableHandler;
}
- public String uuidRelationshipName(String uuidPropertyName) {
+ public String objectIdRelationshipName(String uuidPropertyName) {
return "cay:related:" + uuidPropertyName;
}
- public String uuidPropertyName(DataObject object) {
+ public String objectIdPropertyName(DataObject object) {
- UuidRelationship annotation = object.getClass().getAnnotation(
- UuidRelationship.class);
+ ObjectIdRelationship annotation = object.getClass().getAnnotation(
+ ObjectIdRelationship.class);
if (annotation == null) {
throw new IllegalArgumentException(
@@ -55,8 +54,8 @@ public class UuidRelationshipHandler {
}
/**
- * Establishes a UUID relationship between two objects. Objects must be registered in
- * the same ObjectContext. "from" argument is the object annotated with
+ * Establishes an ObjectId relationship between two objects. Objects must be
+ * registered in the same ObjectContext. "from" argument is the object annotated with
* UuidRelationship. Second argument can optionally be null.
*/
public void relate(DataObject from, DataObject to) {
@@ -65,8 +64,8 @@ public class UuidRelationshipHandler {
throw new IllegalArgumentException("'from' has null ObjectContext");
}
- String property = uuidPropertyName(from);
- String relationship = uuidRelationshipName(property);
+ String property = objectIdPropertyName(from);
+ String relationship = objectIdRelationshipName(property);
if (to != null) {
if (to.getObjectContext() == null) {
@@ -83,13 +82,13 @@ public class UuidRelationshipHandler {
if (to.getObjectId().isTemporary()
&& !to.getObjectId().isReplacementIdAttached()) {
- // defer UUID resolving till commit
- from.writeProperty(property, new UuidPropagatedValueFactory(
+ // defer ObjectId resolving till commit
+ from.writeProperty(property, new ObjectIdPropagatedValueFactory(
referenceableHandler,
to));
}
else {
- String uuid = referenceableHandler.getUuid(to);
+ String uuid = referenceableHandler.getStringId(to);
from.writeProperty(property, uuid);
}
}
Modified: cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/db/UuidRoot1.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/db/UuidRoot1.java?rev=1201425&r1=1201424&r2=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/db/UuidRoot1.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/db/UuidRoot1.java Sun Nov 13 13:49:35 2011
@@ -1,9 +1,9 @@
package org.apache.cayenne.lifecycle.db;
import org.apache.cayenne.lifecycle.db.auto._UuidRoot1;
-import org.apache.cayenne.lifecycle.relationship.UuidRelationship;
+import org.apache.cayenne.lifecycle.relationship.ObjectIdRelationship;
-@UuidRelationship(_UuidRoot1.UUID_PROPERTY)
+@ObjectIdRelationship(_UuidRoot1.UUID_PROPERTY)
public class UuidRoot1 extends _UuidRoot1 {
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/EntityIdCoderTest.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/uuid/UuidCoderTest.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/EntityIdCoderTest.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/EntityIdCoderTest.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/uuid/UuidCoderTest.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/uuid/UuidCoderTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/EntityIdCoderTest.java Sun Nov 13 13:49:35 2011
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.lifecycle.uuid;
+package org.apache.cayenne.lifecycle.id;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -28,12 +28,12 @@ import java.util.Map;
import junit.framework.TestCase;
import org.apache.cayenne.ObjectId;
-import org.apache.cayenne.lifecycle.uuid.UuidCoder;
+import org.apache.cayenne.lifecycle.id.EntityIdCoder;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
-public class UuidCoderTest extends TestCase {
+public class EntityIdCoderTest extends TestCase {
public void testSingleIntPk() {
DbEntity dbEntity = new DbEntity("X");
@@ -49,8 +49,8 @@ public class UuidCoderTest extends TestC
ObjectId id = new ObjectId("x", "ID", 3);
- UuidCoder coder = new UuidCoder(entity);
- assertEquals("x:3", coder.toUuid(id));
+ EntityIdCoder coder = new EntityIdCoder(entity);
+ assertEquals("x:3", coder.toStringId(id));
ObjectId parsedId = coder.toObjectId("x:3");
assertEquals(id, parsedId);
@@ -70,8 +70,8 @@ public class UuidCoderTest extends TestC
ObjectId id = new ObjectId("x", "ID", 3l);
- UuidCoder coder = new UuidCoder(entity);
- assertEquals("x:3", coder.toUuid(id));
+ EntityIdCoder coder = new EntityIdCoder(entity);
+ assertEquals("x:3", coder.toStringId(id));
ObjectId parsedId = coder.toObjectId("x:3");
assertEquals(id, parsedId);
@@ -89,10 +89,10 @@ public class UuidCoderTest extends TestC
when(entity.getDbEntityName()).thenReturn(dbEntity.getName());
when(entity.getDbEntity()).thenReturn(dbEntity);
- UuidCoder coder = new UuidCoder(entity);
+ EntityIdCoder coder = new EntityIdCoder(entity);
ObjectId id = new ObjectId("x", "ID", "AbC");
- assertEquals("x:AbC", coder.toUuid(id));
+ assertEquals("x:AbC", coder.toStringId(id));
ObjectId parsedId = coder.toObjectId("x:AbC");
assertEquals(id, parsedId);
@@ -110,10 +110,10 @@ public class UuidCoderTest extends TestC
when(entity.getDbEntityName()).thenReturn(dbEntity.getName());
when(entity.getDbEntity()).thenReturn(dbEntity);
- UuidCoder coder = new UuidCoder(entity);
+ EntityIdCoder coder = new EntityIdCoder(entity);
ObjectId id = new ObjectId("x", "ID", "Ab:C");
- assertEquals("x:Ab%3AC", coder.toUuid(id));
+ assertEquals("x:Ab%3AC", coder.toStringId(id));
ObjectId parsedId = coder.toObjectId("x:Ab%3AC");
assertEquals(id, parsedId);
@@ -141,14 +141,14 @@ public class UuidCoderTest extends TestC
when(entity.getDbEntityName()).thenReturn(dbEntity.getName());
when(entity.getDbEntity()).thenReturn(dbEntity);
- UuidCoder coder = new UuidCoder(entity);
+ EntityIdCoder coder = new EntityIdCoder(entity);
Map<String, Object> idMap = new HashMap<String, Object>();
idMap.put("ID", "X;Y");
idMap.put("ABC", 6783463l);
idMap.put("ZZZ", "'_'");
ObjectId id = new ObjectId("x", idMap);
- assertEquals("x:6783463:X%3BY:%27_%27", coder.toUuid(id));
+ assertEquals("x:6783463:X%3BY:%27_%27", coder.toStringId(id));
ObjectId parsedId = coder.toObjectId("x:6783463:X%3BY:%27_%27");
assertEquals(id, parsedId);
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/IdCoderTest.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/ref/ReferenceableHandlerTest.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/IdCoderTest.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/IdCoderTest.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/ref/ReferenceableHandlerTest.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/ref/ReferenceableHandlerTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/id/IdCoderTest.java Sun Nov 13 13:49:35 2011
@@ -16,15 +16,16 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.lifecycle.ref;
+package org.apache.cayenne.lifecycle.id;
import junit.framework.TestCase;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.configuration.server.ServerRuntime;
import org.apache.cayenne.lifecycle.db.E1;
+import org.apache.cayenne.lifecycle.id.IdCoder;
-public class ReferenceableHandlerTest extends TestCase {
+public class IdCoderTest extends TestCase {
private ServerRuntime runtime;
@@ -38,41 +39,35 @@ public class ReferenceableHandlerTest ex
runtime.shutdown();
}
- public void testGetUuid() {
- ReferenceableHandler handler = new ReferenceableHandler(runtime
- .getChannel()
- .getEntityResolver());
+ public void testGetStringId() {
+ IdCoder handler = new IdCoder(runtime.getChannel().getEntityResolver());
E1 e1 = new E1();
e1.setObjectId(new ObjectId("E1", "ID", 5));
- assertEquals("E1:5", handler.getUuid(e1));
+ assertEquals("E1:5", handler.getStringId(e1));
}
- public void testGetUuid_TempException() {
- ReferenceableHandler handler = new ReferenceableHandler(runtime
- .getChannel()
- .getEntityResolver());
+ public void testGetStringId_TempException() {
+ IdCoder handler = new IdCoder(runtime.getChannel().getEntityResolver());
E1 e1 = new E1();
e1.setObjectId(new ObjectId("E1"));
try {
- handler.getUuid(e1);
+ handler.getStringId(e1);
}
catch (IllegalArgumentException e) {
// expected
}
}
- public void testGetUuid_TempWithReplacement() {
- ReferenceableHandler handler = new ReferenceableHandler(runtime
- .getChannel()
- .getEntityResolver());
+ public void testGetSringId_TempWithReplacement() {
+ IdCoder handler = new IdCoder(runtime.getChannel().getEntityResolver());
E1 e1 = new E1();
e1.setObjectId(new ObjectId("E1"));
e1.getObjectId().getReplacementIdMap().put("ID", 6);
- assertEquals("E1:6", handler.getUuid(e1));
+ assertEquals("E1:6", handler.getStringId(e1));
}
}
Copied: cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandlerTest.java (from r1196974, cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandlerTest.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandlerTest.java?p2=cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandlerTest.java&p1=cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandlerTest.java&r1=1196974&r2=1201425&rev=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/UuidRelationshipHandlerTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/relationship/ObjectIdRelationshipHandlerTest.java Sun Nov 13 13:49:35 2011
@@ -25,12 +25,12 @@ import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.configuration.server.ServerRuntime;
import org.apache.cayenne.lifecycle.db.E1;
import org.apache.cayenne.lifecycle.db.UuidRoot1;
-import org.apache.cayenne.lifecycle.ref.ReferenceableHandler;
+import org.apache.cayenne.lifecycle.id.IdCoder;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.test.jdbc.DBHelper;
import org.apache.cayenne.test.jdbc.TableHelper;
-public class UuidRelationshipHandlerTest extends TestCase {
+public class ObjectIdRelationshipHandlerTest extends TestCase {
private ServerRuntime runtime;
@@ -42,7 +42,7 @@ public class UuidRelationshipHandlerTest
runtime = new ServerRuntime("cayenne-lifecycle.xml");
// a filter is required to invalidate root objects after commit
- UuidRelationshipFilter filter = new UuidRelationshipFilter();
+ ObjectIdRelationshipFilter filter = new ObjectIdRelationshipFilter();
runtime.getDataDomain().addFilter(filter);
runtime.getDataDomain().getEntityResolver().getCallbackRegistry().addListener(
filter);
@@ -70,9 +70,9 @@ public class UuidRelationshipHandlerTest
UuidRoot1 r1 = context.newObject(UuidRoot1.class);
- ReferenceableHandler refHandler = new ReferenceableHandler(context
+ IdCoder refHandler = new IdCoder(context
.getEntityResolver());
- UuidRelationshipHandler handler = new UuidRelationshipHandler(refHandler);
+ ObjectIdRelationshipHandler handler = new ObjectIdRelationshipHandler(refHandler);
handler.relate(r1, e1);
assertEquals("E1:1", r1.getUuid());
@@ -91,9 +91,9 @@ public class UuidRelationshipHandlerTest
UuidRoot1 r1 = context.newObject(UuidRoot1.class);
- ReferenceableHandler refHandler = new ReferenceableHandler(context
+ IdCoder refHandler = new IdCoder(context
.getEntityResolver());
- UuidRelationshipHandler handler = new UuidRelationshipHandler(refHandler);
+ ObjectIdRelationshipHandler handler = new ObjectIdRelationshipHandler(refHandler);
handler.relate(r1, e1);
assertSame(e1, r1.readPropertyDirectly("cay:related:uuid"));
@@ -119,9 +119,9 @@ public class UuidRelationshipHandlerTest
E1 e1 = context.newObject(E1.class);
- ReferenceableHandler refHandler = new ReferenceableHandler(context
+ IdCoder refHandler = new IdCoder(context
.getEntityResolver());
- UuidRelationshipHandler handler = new UuidRelationshipHandler(refHandler);
+ ObjectIdRelationshipHandler handler = new ObjectIdRelationshipHandler(refHandler);
handler.relate(r1, e1);
assertSame(e1, r1.readPropertyDirectly("cay:related:uuid"));
Modified: cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorterTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorterTest.java?rev=1201425&r1=1201424&r2=1201425&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorterTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorterTest.java Sun Nov 13 13:49:35 2011
@@ -24,7 +24,7 @@ import java.util.List;
import junit.framework.TestCase;
import org.apache.cayenne.configuration.server.ServerRuntime;
-import org.apache.cayenne.lifecycle.relationship.UuidRelationshipFilter;
+import org.apache.cayenne.lifecycle.relationship.ObjectIdRelationshipFilter;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntityResolver;
@@ -38,7 +38,7 @@ public class WeightedAshwoodEntitySorter
runtime = new ServerRuntime("cayenne-lifecycle.xml");
// a filter is required to invalidate root objects after commit
- UuidRelationshipFilter filter = new UuidRelationshipFilter();
+ ObjectIdRelationshipFilter filter = new ObjectIdRelationshipFilter();
runtime.getDataDomain().addFilter(filter);
runtime.getDataDomain().getEntityResolver().getCallbackRegistry().addListener(
filter);