public boolean isDetached(Object obj) { if (!(ImplHelper.isManageable(obj))) return false; PersistenceCapable pc = ImplHelper.toPersistenceCapable(obj, _conf); Boolean detached = pc.pcIsDetached(); if (detached != null) return detached.booleanValue(); // last resort: instance is detached if it has a store record ClassMetaData meta = _conf.getMetaDataRepositoryInstance(). getMetaData(ImplHelper.getManagedInstance(pc).getClass(), _loader, true); Object oid = ApplicationIds.create(pc, meta); if (oid == null) return false; return find(oid, null, EXCLUDE_ALL, null, 0) != null; }
/** * This method makes a best effort to determine if the provided object is detached. * * @param find * - If true, as a last resort this method will check whether or not the provided object exists in the * DB. If it is in the DB, the provided object is detached. * @return - True if the provided obj is detached, false otherwise. */ public boolean isDetached(Object obj, boolean find) { if (!(ImplHelper.isManageable(obj))) return false; PersistenceCapable pc = ImplHelper.toPersistenceCapable(obj, _conf); if (pc.pcGetStateManager() instanceof DetachedStateManager) return true; Boolean detached = pc.pcIsDetached(); if (detached != null) return detached.booleanValue(); if(!find){ return false; } // last resort: instance is detached if it has a store record ClassMetaData meta = _repo.getMetaData(ImplHelper.getManagedInstance(pc).getClass(), _loader, true); Object oid = ApplicationIds.create(pc, meta); if (oid == null) return false; return find(oid, null, EXCLUDE_ALL, null, 0) != null; }
/** * This method makes a best effort to determine if the provided object is detached. * * @param obj * @param find * - If true, as a last resort this method will check whether or not the provided object exists in the * DB. If it is in the DB, the provided object is detached. * @return - True if the provided obj is detached, false otherwise. */ public boolean isDetached(Object obj, boolean find) { if (!(ImplHelper.isManageable(obj))) return false; PersistenceCapable pc = ImplHelper.toPersistenceCapable(obj, _conf); if (pc.pcGetStateManager() instanceof DetachedStateManager) return true; Boolean detached = pc.pcIsDetached(); if (detached != null) return detached.booleanValue(); if(!find){ return false; } // last resort: instance is detached if it has a store record ClassMetaData meta = _repo.getMetaData(ImplHelper.getManagedInstance(pc).getClass(), _loader, true); Object oid = ApplicationIds.create(pc, meta); if (oid == null) return false; return find(oid, null, EXCLUDE_ALL, null, 0) != null; }
/** * This method makes a best effort to determine if the provided object is detached. * * @param obj * @param find * - If true, as a last resort this method will check whether or not the provided object exists in the * DB. If it is in the DB, the provided object is detached. * @return - True if the provided obj is detached, false otherwise. */ public boolean isDetached(Object obj, boolean find) { if (!(ImplHelper.isManageable(obj))) return false; PersistenceCapable pc = ImplHelper.toPersistenceCapable(obj, _conf); if (pc.pcGetStateManager() instanceof DetachedStateManager) return true; Boolean detached = pc.pcIsDetached(); if (detached != null) return detached.booleanValue(); if(!find){ return false; } // last resort: instance is detached if it has a store record ClassMetaData meta = _repo.getMetaData(ImplHelper.getManagedInstance(pc).getClass(), _loader, true); Object oid = ApplicationIds.create(pc, meta); if (oid == null) return false; return find(oid, null, EXCLUDE_ALL, null, 0) != null; }
/** * This method makes a best effort to determine if the provided object is detached. * * @param find * - If true, as a last resort this method will check whether or not the provided object exists in the * DB. If it is in the DB, the provided object is detached. * @return - True if the provided obj is detached, false otherwise. */ public boolean isDetached(Object obj, boolean find) { if (!(ImplHelper.isManageable(obj))) return false; PersistenceCapable pc = ImplHelper.toPersistenceCapable(obj, _conf); if (pc.pcGetStateManager() instanceof DetachedStateManager) return true; Boolean detached = pc.pcIsDetached(); if (detached != null) return detached.booleanValue(); if(!find){ return false; } // last resort: instance is detached if it has a store record ClassMetaData meta = _repo.getMetaData(ImplHelper.getManagedInstance(pc).getClass(), _loader, true); Object oid = ApplicationIds.create(pc, meta); if (oid == null) return false; return find(oid, null, EXCLUDE_ALL, null, 0) != null; }
/** * This method will detach all provided StateManagers in place. * * @param states * The StateManagers to be detached. */ public void detachAll(Collection<StateManagerImpl> states) { for (StateManagerImpl sm : states) { ClassMetaData cmd = sm.getMetaData(); if (sm.isPersistent() && cmd.isDetachable()) { PersistenceCapable pc = sm.getPersistenceCapable(); if (pc.pcIsDetached() == false) { // Detach proxy fields. BitSet loaded = sm.getLoaded(); for (FieldMetaData fmd : cmd.getProxyFields()) { if (loaded.get(fmd.getIndex())) { detachProxyField(fmd, pc, sm, _tsm); } } pc.pcReplaceStateManager(null); } } } }
/** * This method will detach all provided StateManagers in place. * * @param states * The StateManagers to be detached. */ public void detachAll(Collection<StateManagerImpl> states) { for (StateManagerImpl sm : states) { ClassMetaData cmd = sm.getMetaData(); if (sm.isPersistent() && cmd.isDetachable()) { PersistenceCapable pc = sm.getPersistenceCapable(); if (pc.pcIsDetached() == false) { // Detach proxy fields. BitSet loaded = sm.getLoaded(); for (FieldMetaData fmd : cmd.getProxyFields()) { if (loaded.get(fmd.getIndex())) { detachProxyField(fmd, pc, sm, _tsm); } } pc.pcReplaceStateManager(null); } } } }
/** * This method will detach all provided StateManagers in place. * * @param states * The StateManagers to be detached. */ public void detachAll(Collection<StateManagerImpl> states) { for (StateManagerImpl sm : states) { ClassMetaData cmd = sm.getMetaData(); if (sm.isPersistent() && cmd.isDetachable()) { PersistenceCapable pc = sm.getPersistenceCapable(); if (pc.pcIsDetached() == false) { // Detach proxy fields. BitSet loaded = sm.getLoaded(); for (FieldMetaData fmd : cmd.getProxyFields()) { if (loaded.get(fmd.getIndex())) { detachProxyField(fmd, pc, sm, _tsm); } } pc.pcReplaceStateManager(null); } } } }
/** * This method will detach all provided StateManagers in place. * * @param states * The StateManagers to be detached. */ public void detachAll(Collection<StateManagerImpl> states) { for (StateManagerImpl sm : states) { ClassMetaData cmd = sm.getMetaData(); if (sm.isPersistent() && cmd.isDetachable()) { PersistenceCapable pc = sm.getPersistenceCapable(); if (pc.pcIsDetached() == false) { // Detach proxy fields. BitSet loaded = sm.getLoaded(); for (FieldMetaData fmd : cmd.getProxyFields()) { if (loaded.get(fmd.getIndex())) { detachProxyField(fmd, pc, sm, _tsm); } } pc.pcReplaceStateManager(null); } } } }
/** * Internal delete. */ void delete(Object obj, StateManagerImpl sm, OpCallbacks call) { if (!_operating.add(obj)) return; int action = processArgument(OpCallbacks.OP_DELETE, obj, sm, call); if (action == OpCallbacks.ACT_NONE) return; // ACT_CASCADE if ((action & OpCallbacks.ACT_RUN) == 0) { if (sm != null) sm.cascadeDelete(call); else cascadeTransient(OpCallbacks.OP_DELETE, obj, call, "delete"); return; } // ACT_RUN if (sm != null) { if (sm.isDetached()) throw newDetachedException(obj, "delete"); if ((action & OpCallbacks.ACT_CASCADE) != 0) sm.cascadeDelete(call); sm.delete(); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "delete"); }
/** * Store field-level information from the given state manager. */ protected void storeField(OpenJPAStateManager sm, FieldMetaData fmd) { if (fmd.getManagement() != fmd.MANAGE_PERSISTENT) return; int index = fmd.getIndex(); OpenJPAStateManager dsm = null; if (sm.getPersistenceCapable().pcIsDetached()) { dsm = (DetachedStateManager) sm.getPersistenceCapable(). pcGetStateManager(); sm.getPersistenceCapable().pcReplaceStateManager(sm); } Object val = toData(fmd, sm.fetchField(index, false), sm.getContext()); if (dsm != null) sm.getPersistenceCapable().pcReplaceStateManager(dsm); if (val != NULL) setData(index, val); else // unable to store field value; clear out any old values clearData(index); }
/** * Store field-level information from the given state manager. */ protected void storeField(OpenJPAStateManager sm, FieldMetaData fmd) { if (fmd.getManagement() != fmd.MANAGE_PERSISTENT) return; int index = fmd.getIndex(); OpenJPAStateManager dsm = null; if (sm.getPersistenceCapable().pcIsDetached()) { dsm = (DetachedStateManager) sm.getPersistenceCapable(). pcGetStateManager(); sm.getPersistenceCapable().pcReplaceStateManager(sm); } Object val = toData(fmd, sm.fetchField(index, false), sm.getContext()); if (dsm != null) sm.getPersistenceCapable().pcReplaceStateManager(dsm); if (val != NULL) setData(index, val); else // unable to store field value; clear out any old values clearData(index); }
/** * Store field-level information from the given state manager. */ protected void storeField(OpenJPAStateManager sm, FieldMetaData fmd) { if (fmd.getManagement() != fmd.MANAGE_PERSISTENT) return; int index = fmd.getIndex(); OpenJPAStateManager dsm = null; if (sm.getPersistenceCapable().pcIsDetached()) { dsm = (DetachedStateManager) sm.getPersistenceCapable(). pcGetStateManager(); sm.getPersistenceCapable().pcReplaceStateManager(sm); } Object val = toData(fmd, sm.fetchField(index, false), sm.getContext()); if (dsm != null) sm.getPersistenceCapable().pcReplaceStateManager(dsm); if (val != NULL) setData(index, val); else // unable to store field value; clear out any old values clearData(index); }
/** * Store field-level information from the given state manager. */ protected void storeField(OpenJPAStateManager sm, FieldMetaData fmd) { if (fmd.getManagement() != fmd.MANAGE_PERSISTENT) return; int index = fmd.getIndex(); OpenJPAStateManager dsm = null; if (sm.getPersistenceCapable().pcIsDetached()) { dsm = (DetachedStateManager) sm.getPersistenceCapable(). pcGetStateManager(); sm.getPersistenceCapable().pcReplaceStateManager(sm); } Object val = toData(fmd, sm.fetchField(index, false), sm.getContext()); if (dsm != null) sm.getPersistenceCapable().pcReplaceStateManager(dsm); if (val != NULL) setData(index, val); else // unable to store field value; clear out any old values clearData(index); }
/** * Optimization for single-object refresh. */ protected void refreshInternal(Object obj, OpCallbacks call) { try { StateManagerImpl sm = getStateManagerImpl(obj, true); if ((processArgument(OpCallbacks.OP_REFRESH, obj, sm, call) & OpCallbacks.ACT_RUN) == 0) return; if (sm != null) { if (sm.isDetached()) throw newDetachedException(obj, "refresh"); else if (sm.beforeRefresh(false)) { sm.load(_fc, StateManagerImpl.LOAD_FGS, null, null, false); sm.afterRefresh(); } fireLifecycleEvent(sm.getManagedInstance(), null, sm.getMetaData(), LifecycleEvent.AFTER_REFRESH); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "refresh"); } catch (OpenJPAException ke) { throw ke; } catch (RuntimeException re) { throw new GeneralException(re); } }
sm.load(_fc, mode, null, null, false); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "retrieve");
sm.load(_fc, mode, null, null, false); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "retrieve");
fireLifecycleEvent(sm.getManagedInstance(), null, sm.getMetaData(), LifecycleEvent.AFTER_REFRESH); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "refresh");
fireLifecycleEvent(sm.getManagedInstance(), null, sm.getMetaData(), LifecycleEvent.AFTER_REFRESH); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "refresh");
fireLifecycleEvent(sm.getManagedInstance(), null, sm.getMetaData(), LifecycleEvent.AFTER_REFRESH); } else if (assertPersistenceCapable(obj).pcIsDetached() == Boolean.TRUE) throw newDetachedException(obj, "refresh");