svn commit: r831406 - in /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence: EntityManagerFactoryImpl.java OpenJPAPersistenceUtil.java validation/TraversableResolverImpl.java

1 message Options
Embed this post
Permalink
DWoods

svn commit: r831406 - in /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence: EntityManagerFactoryImpl.java OpenJPAPersistenceUtil.java validation/TraversableResolverImpl.java

Reply Threaded More More options
Print post
Permalink
Author: dwoods
Date: Fri Oct 30 18:02:15 2009
New Revision: 831406

URL: http://svn.apache.org/viewvc?rev=831406&view=rev
Log:
OPENJPA-1366 Remove need for an EMF from OpenJPAPersistenceUtil and TraversableResolverImpl.  Also, updated EMFImpl.isLoaded() to use Util.isManagedBy() before Util.isLoaded(), since the entity should be managed by the queried EMF instance.

Modified:
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java
    openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/TraversableResolverImpl.java

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java?rev=831406&r1=831405&r2=831406&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java Fri Oct 30 18:02:15 2009
@@ -333,8 +333,7 @@
         if (entity == null) {
             return false;
         }
-        
-        return (OpenJPAPersistenceUtil.isLoaded(this, entity, attribute) ==
-            LoadState.LOADED);
-    }    
+        return (OpenJPAPersistenceUtil.isManagedBy(this, entity) &&
+                (OpenJPAPersistenceUtil.isLoaded(entity, attribute) == LoadState.LOADED));
+    }
 }

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java?rev=831406&r1=831405&r2=831406&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java Fri Oct 30 18:02:15 2009
@@ -106,33 +106,19 @@
     }
 
     /**
-     * Determines whether the attribute on the specified object is loaded.
-     *
-     * @return LoadState.LOADED - if the attribute is loaded.
-     *         LoadState.NOT_LOADED - if the attribute is not loaded or any
-     *         EAGER fetch attributes of the entity are not loaded.
-     *         LoadState.UNKNOWN - if the entity is not managed by this
-     *         provider or if it does not contain the persistent
-     *         attribute.
-     */
-    public static LoadState isLoaded(Object obj, String attr) {
-        return isLoaded(null, obj, attr);
-    }
-
-    /**
      * Determines whether the attribute on the specified object is loaded and
-     * is managed by one of the entity managers of the specified entity manager
+     * is managed by one of the entity managers.  Use isManagedBy() to
+     * determine if an object is managed by a specific entity manager
      * factory.
      *
      * @return LoadState.LOADED - if the attribute is loaded.
      *         LoadState.NOT_LOADED - if the attribute is not loaded or any
      *         EAGER fetch attributes of the entity are not loaded.
      *         LoadState.UNKNOWN - if the entity is not managed by this
-     *         provider or one of the entity managers of the specified
-     *         entity manager factory, or if it does not contain the persistent
+     *         provider or if it does not contain the persistent
      *         attribute.
      */
-    public static LoadState isLoaded(OpenJPAEntityManagerFactory emf, Object obj, String attr) {
+    public static LoadState isLoaded(Object obj, String attr) {
 
         if (obj == null) {
             return LoadState.UNKNOWN;
@@ -141,10 +127,6 @@
         // If the object has a state manager, call it directly.
         if (obj instanceof PersistenceCapable) {
             PersistenceCapable pc = (PersistenceCapable)obj;
-            if (emf != null) {
-                if (!OpenJPAPersistenceUtil.isManagedBy(emf, pc))
-                    return LoadState.UNKNOWN;
-            }
             StateManager sm = pc.pcGetStateManager();
             if (sm != null && sm instanceof OpenJPAStateManager) {
                 return isLoaded((OpenJPAStateManager)sm, attr, null);

Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/TraversableResolverImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/TraversableResolverImpl.java?rev=831406&r1=831405&r2=831406&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/TraversableResolverImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/validation/TraversableResolverImpl.java Fri Oct 30 18:02:15 2009
@@ -34,16 +34,9 @@
  */
 public class TraversableResolverImpl implements TraversableResolver {
 
-    // For OpenJPA created instance, we should have a reference to ourselves
-    private OpenJPAEntityManagerFactory emf = null;
-
     public TraversableResolverImpl() {
     }
 
-    public TraversableResolverImpl(OpenJPAEntityManagerFactory emf) {
-        this.emf = emf;
-    }
-
     /* (non-Javadoc) isReachable() is called by the Validator before accessing
      * a property for validation or for cascading.
      *
@@ -59,8 +52,7 @@
          * OpenJPA optimized version of the default provider implementation,
          * which doesn't ask all the providers on the classpath about the obj.
          */
-        if (OpenJPAPersistenceUtil.isLoaded(emf, traversableObject,
-            traversableProperty.getName()) == LoadState.NOT_LOADED) {
+        if (OpenJPAPersistenceUtil.isLoaded(traversableObject, traversableProperty.getName()) == LoadState.NOT_LOADED) {
             return false;
         } else {
             // LoadState.LOADED or LoadState.UNKNOWN