Author: dwoods
Date: Fri Oct 30 18:02:15 2009
New Revision: 831406
URL:
http://svn.apache.org/viewvc?rev=831406&view=revLog:
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