Author: mikedd
Date: Mon Nov 22 18:41:03 2010
New Revision: 1037827
URL: http://svn.apache.org/viewvc?rev=1037827&view=rev
Log:
OPENJPA-1885: rename new method to persistInternal and some code formatting
changes
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java?rev=1037827&r1=1037826&r2=1037827&view=diff
==============================================================================
---
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java
(original)
+++
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java
Mon Nov 22 18:41:03 2010
@@ -2464,7 +2464,7 @@ public class BrokerImpl
try {
if(obj == null)
continue;
- persist0(obj, null, explicit, call);
+ persistInternal(obj, null, explicit, call);
} catch (UserException ue) {
exceps = add(exceps, ue);
}
@@ -2537,7 +2537,7 @@ public class BrokerImpl
try {
assertWriteOperation();
- return persist0(obj, id, explicit, call);
+ return persistInternal(obj, id, explicit, call);
} catch (OpenJPAException ke) {
throw ke;
} catch (RuntimeException re) {
@@ -2547,89 +2547,96 @@ public class BrokerImpl
}
}
- private OpenJPAStateManager persist0(Object obj, Object id,
- boolean explicit, OpCallbacks call) {
- StateManagerImpl sm = getStateManagerImpl(obj, true);
- if (!_operating.add(obj))
- return sm;
-
- int action = processArgument(OpCallbacks.OP_PERSIST, obj, sm,
call);
- if (action == OpCallbacks.ACT_NONE)
- return sm;
-
- // ACT_CASCADE
- if ((action & OpCallbacks.ACT_RUN) == 0) {
- if (sm != null)
- sm.cascadePersist(call);
- else
- cascadeTransient(OpCallbacks.OP_PERSIST, obj, call,
- "persist");
- return sm;
- }
-
- // ACT_RUN
- PersistenceCapable pc;
- if (sm != null) {
- if (sm.isDetached())
- throw new ObjectExistsException(_loc.get
- ("persist-detached", Exceptions.toString(obj))).
- setFailedObject(obj);
-
- if (!sm.isEmbedded()) {
- sm.persist();
- _cache.persist(sm);
- if ((action & OpCallbacks.ACT_CASCADE) != 0)
- sm.cascadePersist(call);
- return sm;
- }
-
- // an embedded field; notify the owner that the value has
- // changed by becoming independently persistent
- sm.getOwner().dirty(sm.getOwnerIndex());
- _cache.persist(sm);
- pc = sm.getPersistenceCapable();
- } else {
- pc = assertPersistenceCapable(obj);
- if (pc.pcIsDetached() == Boolean.TRUE)
- throw new ObjectExistsException(_loc.get
- ("persist-detached", Exceptions.toString(obj))).
- setFailedObject(obj);
- }
-
- ClassMetaData meta = _repo.getMetaData(obj.getClass(), _loader,
true);
- fireLifecycleEvent(obj, null, meta,
LifecycleEvent.BEFORE_PERSIST);
-
- // create id for instance
- if (id == null) {
- int idType = meta.getIdentityType();
- if (idType == ClassMetaData.ID_APPLICATION)
- id = ApplicationIds.create(pc, meta);
- else if (idType == ClassMetaData.ID_UNKNOWN)
- throw new UserException(_loc.get("meta-unknownid",
meta));
- else
- id = StateManagerId.newInstance(this);
- }
-
- // make sure we don't already have the instance cached
- checkForDuplicateId(id, obj, meta);
-
- // if had embedded sm, null it
- if (sm != null)
- pc.pcReplaceStateManager(null);
-
- // create new sm
- sm = newStateManagerImpl(id, meta);
- if ((_flags & FLAG_ACTIVE) != 0) {
- if (explicit)
- sm.initialize(pc, PCState.PNEW);
- else
- sm.initialize(pc, PCState.PNEWPROVISIONAL);
- } else
- sm.initialize(pc, PCState.PNONTRANSNEW);
- if ((action & OpCallbacks.ACT_CASCADE) != 0)
- sm.cascadePersist(call);
- return sm;
- }
+ private OpenJPAStateManager persistInternal(Object obj, Object id, boolean
explicit, OpCallbacks call) {
+ StateManagerImpl sm = getStateManagerImpl(obj, true);
+ if (!_operating.add(obj)) {
+ return sm;
+ }
+
+ int action = processArgument(OpCallbacks.OP_PERSIST, obj, sm, call);
+ if (action == OpCallbacks.ACT_NONE) {
+ return sm;
+ }
+
+ // ACT_CASCADE
+ if ((action & OpCallbacks.ACT_RUN) == 0) {
+ if (sm != null) {
+ sm.cascadePersist(call);
+ } else {
+ cascadeTransient(OpCallbacks.OP_PERSIST, obj, call, "persist");
+ }
+ return sm;
+ }
+
+ // ACT_RUN
+ PersistenceCapable pc;
+ if (sm != null) {
+ if (sm.isDetached()) {
+ throw new ObjectExistsException(_loc.get("persist-detached",
Exceptions.toString(obj)))
+ .setFailedObject(obj);
+ }
+
+ if (!sm.isEmbedded()) {
+ sm.persist();
+ _cache.persist(sm);
+ if ((action & OpCallbacks.ACT_CASCADE) != 0) {
+ sm.cascadePersist(call);
+ }
+ return sm;
+ }
+
+ // an embedded field; notify the owner that the value has
+ // changed by becoming independently persistent
+ sm.getOwner().dirty(sm.getOwnerIndex());
+ _cache.persist(sm);
+ pc = sm.getPersistenceCapable();
+ } else {
+ pc = assertPersistenceCapable(obj);
+ if (pc.pcIsDetached() == Boolean.TRUE) {
+ throw new ObjectExistsException(_loc.get("persist-detached",
Exceptions.toString(obj)))
+ .setFailedObject(obj);
+ }
+ }
+
+ ClassMetaData meta = _repo.getMetaData(obj.getClass(), _loader, true);
+ fireLifecycleEvent(obj, null, meta, LifecycleEvent.BEFORE_PERSIST);
+
+ // create id for instance
+ if (id == null) {
+ int idType = meta.getIdentityType();
+ if (idType == ClassMetaData.ID_APPLICATION) {
+ id = ApplicationIds.create(pc, meta);
+ } else if (idType == ClassMetaData.ID_UNKNOWN) {
+ throw new UserException(_loc.get("meta-unknownid", meta));
+ } else {
+ id = StateManagerId.newInstance(this);
+ }
+ }
+
+ // make sure we don't already have the instance cached
+ checkForDuplicateId(id, obj, meta);
+
+ // if had embedded sm, null it
+ if (sm != null) {
+ pc.pcReplaceStateManager(null);
+ }
+
+ // create new sm
+ sm = newStateManagerImpl(id, meta);
+ if ((_flags & FLAG_ACTIVE) != 0) {
+ if (explicit) {
+ sm.initialize(pc, PCState.PNEW);
+ } else {
+ sm.initialize(pc, PCState.PNEWPROVISIONAL);
+ }
+ } else {
+ sm.initialize(pc, PCState.PNONTRANSNEW);
+ }
+ if ((action & OpCallbacks.ACT_CASCADE) != 0) {
+ sm.cascadePersist(call);
+ }
+ return sm;
+ }
/**
* Temporarily manage the given instance in order to cascade the given