You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2005/07/21 16:19:47 UTC
svn commit: r220088 - in
/incubator/jdo/trunk/runtime20/src/java/org/apache/jdo:
impl/state/StateManagerImpl.java state/StateManagerInternal.java
Author: mbo
Date: Thu Jul 21 07:19:45 2005
New Revision: 220088
URL: http://svn.apache.org/viewcvs?rev=220088&view=rev
Log:
Added StateManager method isBeforeImageRequired
Modified:
incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/impl/state/StateManagerImpl.java
incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/state/StateManagerInternal.java
Modified: incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/impl/state/StateManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/impl/state/StateManagerImpl.java?rev=220088&r1=220087&r2=220088&view=diff
==============================================================================
--- incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/impl/state/StateManagerImpl.java (original)
+++ incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/impl/state/StateManagerImpl.java Thu Jul 21 07:19:45 2005
@@ -679,6 +679,20 @@
return myLC.isNew();
}
+ /**
+ * Returns <code>true</code>, if a before image must be created. The
+ * decision is based on the current lifecycle state plus other conditions
+ * e.g. transaction type, restore values flag, etc.
+ * @see org.apache.jdo.state.StateManagerInternal#isBeforeImageRequired()
+ * @return <code>true</code> if a before image must be created.
+ */
+ public boolean isBeforeImageRequired() {
+ boolean isTransientTransactional =
+ !myLC.isPersistent() && myLC.isTransactional();
+ return (tx.getOptimistic() || tx.getRestoreValues() ||
+ isTransientTransactional);
+ }
+
//
// LifeCycleState transition requests
//
@@ -936,11 +950,8 @@
debug("createBeforeImage: new " + (beforeImage == null) + // NOI18N
" Tx is active: " + tx.isActive()); // NOI18N
- boolean isTransientTransactional =
- !myLC.isPersistent() && myLC.isTransactional();
- if (beforeImage == null && tx.isActive() &&
- (tx.getOptimistic() || tx.getRestoreValues() ||
- isTransientTransactional)) {
+ if (beforeImage == null && tx.isActive() &&
+ isBeforeImageRequired()) {
beforeImage = jdoImplHelper.newInstance (myPCClass, this);
int[] fields = getFieldNums(loadedFields);
@@ -1349,11 +1360,7 @@
if (debugging())
debug("createBeforeImage"); // NOI18N
- boolean isTransientTransactional =
- !myLC.isPersistent() && myLC.isTransactional();
- if (tx.getOptimistic() || tx.getRestoreValues() ||
- isTransientTransactional) {
-
+ if (isBeforeImageRequired()) {
beforeImage = jdoImplHelper.newInstance (myPCClass, this);
beforeImage.jdoCopyFields(myPC, getFieldNums(loadedFields));
biFields.or(loadedFields);
Modified: incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/state/StateManagerInternal.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/state/StateManagerInternal.java?rev=220088&r1=220087&r2=220088&view=diff
==============================================================================
--- incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/state/StateManagerInternal.java (original)
+++ incubator/jdo/trunk/runtime20/src/java/org/apache/jdo/state/StateManagerInternal.java Thu Jul 21 07:19:45 2005
@@ -272,4 +272,12 @@
*/
public boolean isNew();
+ /**
+ * Returns <code>true</code>, if a before image must be created. The
+ * decision is based on the current lifecycle state plus other conditions
+ * e.g. transaction type, restore values flag, etc.
+ * @return <code>true</code> if a before image must be created.
+ */
+ public boolean isBeforeImageRequired();
+
}