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 20:28:47 UTC

svn commit: r479175 - in /incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa: cspi/ reflect/

Author: aadamchik
Date: Sat Nov 25 11:28:46 2006
New Revision: 479175

URL: http://svn.apache.org/viewvc?view=rev&rev=479175
Log:
CAY-701: "property" package refactoring
(moving "property" to reflect package)

Added:
    incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/
    incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java
      - copied, changed from r479152, 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/reflect/CjpaCollectionFieldAccessor.java
      - copied, changed from r479152, incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaCollectionFieldAccessor.java
    incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java
      - copied, changed from r479152, incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaToManyProperty.java
Removed:
    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/CjpaCollectionFieldAccessor.java
    incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaToManyProperty.java
Modified:
    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/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=479175&r1=479174&r2=479175
==============================================================================
--- 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 Sat Nov 25 11:28:46 2006
@@ -45,10 +45,11 @@
 import org.apache.cayenne.jpa.conf.EntityMapLoaderContext;
 import org.apache.cayenne.jpa.instrument.UnitClassTranformer;
 import org.apache.cayenne.jpa.map.JpaClassDescriptor;
+import org.apache.cayenne.jpa.reflect.CjpaClassDescriptorFactory;
 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.reflect.ClassDescriptorMap;
 import org.apache.cayenne.util.ResourceLocator;
 import org.apache.cayenne.util.Util;
 import org.apache.cayenne.validation.SimpleValidationFailure;

Copied: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java (from r479152, 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/reflect/CjpaClassDescriptorFactory.java?view=diff&rev=479175&p1=incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaClassDescriptorFactory.java&r1=479152&p2=incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaClassDescriptorFactory.java&r2=479175
==============================================================================
--- 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/reflect/CjpaClassDescriptorFactory.java Sat Nov 25 11:28:46 2006
@@ -17,19 +17,28 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.jpa.cspi;
+package org.apache.cayenne.jpa.reflect;
 
 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;
+import org.apache.cayenne.reflect.Accessor;
+import org.apache.cayenne.reflect.ClassDescriptor;
+import org.apache.cayenne.reflect.ClassDescriptorMap;
+import org.apache.cayenne.reflect.PersistentDescriptor;
+import org.apache.cayenne.reflect.PersistentDescriptorFactory;
 
 public class CjpaClassDescriptorFactory extends PersistentDescriptorFactory {
 
     public CjpaClassDescriptorFactory(ClassDescriptorMap descriptorMap) {
         super(descriptorMap);
+    }
+
+    // TODO: andrus, 11/25/2006 - sniff enhanced objects, and skip the rest in
+    // 'getDescriptor'
+
+    @Override
+    protected void createToOneProperty(
+            PersistentDescriptor descriptor,
+            ObjRelationship relationship) {
     }
 
     @Override

Copied: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaCollectionFieldAccessor.java (from r479152, incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaCollectionFieldAccessor.java)
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaCollectionFieldAccessor.java?view=diff&rev=479175&p1=incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaCollectionFieldAccessor.java&r1=479152&p2=incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaCollectionFieldAccessor.java&r2=479175
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaCollectionFieldAccessor.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaCollectionFieldAccessor.java Sat Nov 25 11:28:46 2006
@@ -17,12 +17,12 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.jpa.cspi;
+package org.apache.cayenne.jpa.reflect;
 
 import org.apache.cayenne.Fault;
 import org.apache.cayenne.Persistent;
-import org.apache.cayenne.property.FieldAccessor;
-import org.apache.cayenne.property.PropertyException;
+import org.apache.cayenne.reflect.FieldAccessor;
+import org.apache.cayenne.reflect.PropertyException;
 
 class CjpaCollectionFieldAccessor extends FieldAccessor {
 

Copied: incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java (from r479152, incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaToManyProperty.java)
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java?view=diff&rev=479175&p1=incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaToManyProperty.java&r1=479152&p2=incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java&r2=479175
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/cspi/CjpaToManyProperty.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jpa/src/main/java/org/apache/cayenne/jpa/reflect/CjpaToManyProperty.java Sat Nov 25 11:28:46 2006
@@ -17,17 +17,22 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.jpa.cspi;
+package org.apache.cayenne.jpa.reflect;
 
-import org.apache.cayenne.property.Accessor;
-import org.apache.cayenne.property.ClassDescriptor;
-import org.apache.cayenne.property.PropertyException;
-import org.apache.cayenne.property.ToManyListProperty;
+import org.apache.cayenne.Fault;
+import org.apache.cayenne.Persistent;
+import org.apache.cayenne.ValueHolder;
+import org.apache.cayenne.reflect.Accessor;
+import org.apache.cayenne.reflect.ClassDescriptor;
+import org.apache.cayenne.reflect.ListProperty;
+import org.apache.cayenne.reflect.PropertyException;
 
-class CjpaToManyProperty extends ToManyListProperty {
+// TODO: andrus 11/25/2006 - this should be modeled after EnhancedPojo instead of
+// DataObject to-many property.
+class CjpaToManyProperty extends ListProperty {
 
-    public CjpaToManyProperty(ClassDescriptor owner,
-            ClassDescriptor targetDescriptor, Accessor accessor, String reverseName) {
+    public CjpaToManyProperty(ClassDescriptor owner, ClassDescriptor targetDescriptor,
+            Accessor accessor, String reverseName) {
         super(owner, targetDescriptor, accessor, reverseName);
     }
 
@@ -35,5 +40,26 @@
     public void writePropertyDirectly(Object object, Object oldValue, Object newValue)
             throws PropertyException {
         accessor.setValue(object, newValue);
+    }
+
+    @Override
+    protected ValueHolder createCollectionValueHolder(Object object)
+            throws PropertyException {
+        if (!(object instanceof Persistent)) {
+
+            throw new PropertyException(
+                    "ValueHolders for non-persistent objects are not supported.",
+                    this,
+                    object);
+        }
+
+        return (ValueHolder) Fault.getToManyFault().resolveFault(
+                (Persistent) object,
+                getName());
+    }
+
+    @Override
+    public void invalidate(Object object) {
+        writePropertyDirectly(object, null, Fault.getToManyFault());
     }
 }