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 2006/11/25 03:42:48 UTC
svn commit: r479074 - in
/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi:
CjpaClassDescriptorFactory.java CjpaEntityDescriptor.java
CjpaPersistenceProvider.java
Author: aadamchik
Date: Fri Nov 24 18:42:48 2006
New Revision: 479074
URL: http://svn.apache.org/viewvc?view=rev&rev=479074
Log:
CAY-701: "property" package refactoring
(updating JPA package to conform to the new property API)
Removed:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaEntityDescriptor.java
Modified:
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaClassDescriptorFactory.java
incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaPersistenceProvider.java
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaClassDescriptorFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaClassDescriptorFactory.java?view=diff&rev=479074&r1=479073&r2=479074
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaClassDescriptorFactory.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaClassDescriptorFactory.java Fri Nov 24 18:42:48 2006
@@ -17,35 +17,37 @@
* under the License.
****************************************************************/
-
package org.apache.cayenne.jpa.cspi;
-import org.apache.cayenne.map.EntityDescriptor;
-import org.apache.cayenne.map.EntityDescriptorFactory;
-import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
+import org.apache.cayenne.map.compiled.ClassDescriptorMap;
+import org.apache.cayenne.map.compiled.PersistentDescriptor;
+import org.apache.cayenne.map.compiled.PersistentDescriptorFactory;
+import org.apache.cayenne.property.Accessor;
import org.apache.cayenne.property.ClassDescriptor;
-public class CjpaClassDescriptorFactory extends EntityDescriptorFactory {
+public class CjpaClassDescriptorFactory extends PersistentDescriptorFactory {
- public CjpaClassDescriptorFactory(EntityResolver resolver) {
- super(resolver);
+ public CjpaClassDescriptorFactory(ClassDescriptorMap descriptorMap) {
+ super(descriptorMap);
}
@Override
- protected EntityDescriptor createDescriptor(String entityName) {
- ObjEntity entity = resolver.getObjEntity(entityName);
- if (entity == null) {
- return null;
- }
-
- String superEntityName = entity.getSuperEntityName();
-
- ClassDescriptor superDescriptor = (superEntityName != null) ? resolver
- .getClassDescriptor(superEntityName) : null;
-
- // return uncompiled
- return new CjpaEntityDescriptor(entity, superDescriptor);
+ protected void createToManyProperty(
+ PersistentDescriptor descriptor,
+ ObjRelationship relationship) {
+ ClassDescriptor targetDescriptor = descriptorMap.getDescriptor(relationship
+ .getTargetEntityName());
+ String reverseName = relationship.getReverseRelationshipName();
+
+ Accessor accessor = new CjpaCollectionFieldAccessor(
+ descriptor.getObjectClass(),
+ relationship.getName(),
+ null);
+ descriptor.addDeclaredProperty(new CjpaCollectionProperty(
+ descriptor,
+ targetDescriptor,
+ accessor,
+ reverseName));
}
-
}
Modified: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaPersistenceProvider.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaPersistenceProvider.java?view=diff&rev=479074&r1=479073&r2=479074
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaPersistenceProvider.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaPersistenceProvider.java Fri Nov 24 18:42:48 2006
@@ -48,6 +48,7 @@
import org.apache.cayenne.jpa.spi.JpaPersistenceProvider;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.compiled.ClassDescriptorMap;
import org.apache.cayenne.util.ResourceLocator;
import org.apache.cayenne.util.Util;
import org.apache.cayenne.validation.SimpleValidationFailure;
@@ -119,8 +120,11 @@
// configure Cayenne domain
domain = new DataDomain(name);
- domain.getEntityResolver().setClassDescriptorFactory(
- new CjpaClassDescriptorFactory(domain.getEntityResolver()));
+ ClassDescriptorMap descriptors = domain
+ .getEntityResolver()
+ .getClassDescriptorMap();
+
+ descriptors.addFactory(new CjpaClassDescriptorFactory(descriptors));
configuration.addDomain(domain);
EntityMapLoader loader = new EntityMapLoader(info);