public String toString() { return "SM[" + _meta.getDescribedType().getSimpleName() + "]:" + getObjectId(); }
public String toString() { return "SM[" + _meta.getDescribedType().getSimpleName() + "]:" + getObjectId(); }
public String toString() { return "SM[" + _meta.getDescribedType().getSimpleName() + "]:" + getObjectId(); }
public String toString() { return "SM[" + _meta.getDescribedType().getSimpleName() + "]:" + getObjectId(); }
/** * Remove the given state manager from the cache when it transitions * to transient. */ public void remove(Object id, StateManagerImpl sm) { // if it has a permanent oid, remove from main / conflict cache, // else remove from embedded/nontrans cache, and if not there // remove from new cache StateManagerImpl orig; if (sm.getObjectId() != null) { orig = _main.remove(id); if (orig != sm) { if (orig != null) _main.put(id, orig); // put back if (_conflicts != null) { orig = _conflicts.remove(id); if (orig != null && orig != sm) _conflicts.put(id, orig); // put back } } } else if ((_embeds == null || !_embeds.remove(sm)) && _news != null) { orig = _news.remove(id); if (orig != null && orig != sm) _news.put(id, orig); // put back } if (_untracked != null) _untracked.remove(sm); }
/** * Remove the given state manager from the cache when it transitions * to transient. */ public void remove(Object id, StateManagerImpl sm) { // if it has a permanent oid, remove from main / conflict cache, // else remove from embedded/nontrans cache, and if not there // remove from new cache Object orig; if (sm.getObjectId() != null) { orig = _main.remove(id); if (orig != sm) { if (orig != null) _main.put(id, orig); // put back if (_conflicts != null) { orig = _conflicts.remove(id); if (orig != null && orig != sm) _conflicts.put(id, orig); // put back } } } else if ((_embeds == null || !_embeds.remove(sm)) && _news != null) { orig = _news.remove(id); if (orig != null && orig != sm) _news.put(id, orig); // put back } if (_untracked != null) _untracked.remove(sm); }
/** * A new instance has just been assigned a permanent oid. */ public void assignObjectId(Object id, StateManagerImpl sm) { // if assigning oid, remove from new cache and put in primary; may // not be in new cache if another new instance had same id StateManagerImpl orig = null; if (_news != null) { orig = _news.remove(id); if (orig != null && orig != sm) _news.put(id, orig); // put back } // put in main cache, but make sure we don't replace another // instance with the same oid orig = _main.put(sm.getObjectId(), sm); if (orig != null) { _main.put(sm.getObjectId(), orig); if (!orig.isDeleted()) throw new UserException(_loc.get("dup-oid-assign", sm.getObjectId(), Exceptions.toString(sm.getManagedInstance()))) .setFailedObject(sm.getManagedInstance()); // same oid as deleted instance; put in conflict cache if (_conflicts == null) _conflicts = new HashMap<Object,StateManagerImpl>(); _conflicts.put(sm.getObjectId(), sm); } }
private Object getPKValue(StateManagerImpl pkSm) { ClassMetaData pkMeta = pkSm.getMetaData(); FieldMetaData[] fmds = pkMeta.getPrimaryKeyFields(); // MappedById is for single value primary key or embeddable id if (fmds.length == 0) return null; else return ApplicationIds.getKey(pkSm.getObjectId(), pkMeta); }
private Object getPKValue(StateManagerImpl pkSm) { ClassMetaData pkMeta = pkSm.getMetaData(); FieldMetaData[] fmds = pkMeta.getPrimaryKeyFields(); // MappedById is for single value primary key or embeddable id if (fmds.length == 0) return null; else return ApplicationIds.getKey(pkSm.getObjectId(), pkMeta); }
private Object getPKValue(StateManagerImpl pkSm) { ClassMetaData pkMeta = pkSm.getMetaData(); FieldMetaData[] fmds = pkMeta.getPrimaryKeyFields(); // MappedById is for single value primary key or embeddable id if (fmds.length == 0) return null; else return ApplicationIds.getKey(pkSm.getObjectId(), pkMeta); }
private Object getPKValue(StateManagerImpl pkSm) { ClassMetaData pkMeta = pkSm.getMetaData(); FieldMetaData[] fmds = pkMeta.getPrimaryKeyFields(); // MappedById is for single value primary key or embeddable id if (fmds.length == 0) return null; else return ApplicationIds.getKey(pkSm.getObjectId(), pkMeta); }
/** * Generate the detached state for the given instance. */ private static Object getDetachedState(StateManagerImpl sm, BitSet fields) { // if datastore, store id in first element int offset = (sm.getMetaData().getIdentityType() == ClassMetaData.ID_DATASTORE) ? 1 : 0; // make version state array one larger for new instances; marks new // instances without affecting serialization size much Object[] state; if (sm.isNew()) state = new Object[3 + offset]; else state = new Object[2 + offset]; if (offset > 0) { Object id; if (sm.isEmbedded() || sm.getObjectId() == null) id = sm.getId(); else id = sm.getObjectId(); state[0] = id.toString(); } state[offset] = sm.getVersion(); state[offset + 1] = fields; return state; }
/** * Generate the detached state for the given instance. */ private static Object getDetachedState(StateManagerImpl sm, BitSet fields) { // if datastore, store id in first element int offset = (sm.getMetaData().getIdentityType() == ClassMetaData.ID_DATASTORE) ? 1 : 0; // make version state array one larger for new instances; marks new // instances without affecting serialization size much Object[] state; if (sm.isNew()) state = new Object[3 + offset]; else state = new Object[2 + offset]; if (offset > 0) { Object id; if (sm.isEmbedded() || sm.getObjectId() == null) id = sm.getId(); else id = sm.getObjectId(); state[0] = id.toString(); } state[offset] = sm.getVersion(); state[offset + 1] = fields; return state; }
/** * Generate the detached state for the given instance. */ private static Object getDetachedState(StateManagerImpl sm, BitSet fields) { // if datastore, store id in first element int offset = (sm.getMetaData().getIdentityType() == ClassMetaData.ID_DATASTORE) ? 1 : 0; // make version state array one larger for new instances; marks new // instances without affecting serialization size much Object[] state; if (sm.isNew()) state = new Object[3 + offset]; else state = new Object[2 + offset]; if (offset > 0) { Object id; if (sm.isEmbedded() || sm.getObjectId() == null) id = sm.getId(); else id = sm.getObjectId(); state[0] = id.toString(); } state[offset] = sm.getVersion(); state[offset + 1] = fields; return state; }
/** * Generate the detached state for the given instance. */ private static Object getDetachedState(StateManagerImpl sm, BitSet fields) { // if datastore, store id in first element int offset = (sm.getMetaData().getIdentityType() == ClassMetaData.ID_DATASTORE) ? 1 : 0; // make version state array one larger for new instances; marks new // instances without affecting serialization size much Object[] state; if (sm.isNew()) state = new Object[3 + offset]; else state = new Object[2 + offset]; if (offset > 0) { Object id; if (sm.isEmbedded() || sm.getObjectId() == null) id = sm.getId(); else id = sm.getObjectId(); state[0] = id.toString(); } state[offset] = sm.getVersion(); state[offset + 1] = fields; return state; }
/** * Generate the detached state for the given instance. */ private static Object getDetachedState(StateManagerImpl sm, BitSet fields) { // if datastore, store id in first element int offset = (sm.getMetaData().getIdentityType() == ClassMetaData.ID_DATASTORE) ? 1 : 0; // make version state array one larger for new instances; marks new // instances without affecting serialization size much Object[] state; if (sm.isNew()) state = new Object[3 + offset]; else state = new Object[2 + offset]; if (offset > 0) { Object id; if (sm.isEmbedded() || sm.getObjectId() == null) id = sm.getId(); else id = sm.getObjectId(); state[0] = id.toString(); } state[offset] = sm.getVersion(); state[offset + 1] = fields; return state; }
public void evict(Object obj, OpCallbacks call) { if (obj == null) return; beginOperation(false); try { StateManagerImpl sm = getStateManagerImpl(obj, true); if ((processArgument(OpCallbacks.OP_EVICT, obj, sm, call) & OpCallbacks.ACT_RUN) == 0) return; if (sm == null) return; sm.evict(); if (_evictDataCache && sm.getObjectId() != null) { DataCache cache = _conf.getDataCacheManagerInstance().selectCache(sm); if (cache != null) cache.remove(sm.getObjectId()); } } catch (OpenJPAException ke) { throw ke; } catch (RuntimeException re) { throw new GeneralException(re); } finally { endOperation(); } }
public void evict(Object obj, OpCallbacks call) { if (obj == null) return; beginOperation(false); try { StateManagerImpl sm = getStateManagerImpl(obj, true); if ((processArgument(OpCallbacks.OP_EVICT, obj, sm, call) & OpCallbacks.ACT_RUN) == 0) return; if (sm == null) return; sm.evict(); if (_evictDataCache && sm.getObjectId() != null) { DataCache cache = _conf.getDataCacheManagerInstance().selectCache(sm); if (cache != null) cache.remove(sm.getObjectId()); } } catch (OpenJPAException ke) { throw ke; } catch (RuntimeException re) { throw new GeneralException(re); } finally { endOperation(); } }
private void setPKValue(StateManagerImpl sm, Object pkVal) { ClassMetaData meta = sm.getMetaData(); FieldMetaData[] fmds = meta.getPrimaryKeyFields(); if (fmds.length == 0) return; Strategy strat = ((FieldMapping)fmds[0]).getStrategy(); // single value primary key if (strat instanceof PrimitiveFieldStrategy) ((PrimitiveFieldStrategy)strat).setAutoAssignedValue(sm, null, null, pkVal); else { //composite key String mappedByIdFieldName = getMappedByIdValue(); if (mappedByIdFieldName != null && mappedByIdFieldName.length() > 0) { //The name of the attribute within the composite key to which //the relationship attribute corresponds. Object target = ((ObjectId)sm.getObjectId()).getId(); if (target == null) return; setMappedByIdValue(target, pkVal, mappedByIdFieldName); pkVal = target; } sm.storeObjectField(fmds[0].getIndex(), pkVal); } }
private void setPKValue(StateManagerImpl sm, Object pkVal) { ClassMetaData meta = sm.getMetaData(); FieldMetaData[] fmds = meta.getPrimaryKeyFields(); if (fmds.length == 0) return; Strategy strat = ((FieldMapping)fmds[0]).getStrategy(); // single value primary key if (strat instanceof PrimitiveFieldStrategy) ((PrimitiveFieldStrategy)strat).setAutoAssignedValue(sm, null, null, pkVal); else { //composite key String mappedByIdFieldName = getMappedByIdValue(); if (mappedByIdFieldName != null && mappedByIdFieldName.length() > 0) { //The name of the attribute within the composite key to which //the relationship attribute corresponds. Object target = ((ObjectId)sm.getObjectId()).getId(); if (target == null) return; setMappedByIdValue(target, pkVal, mappedByIdFieldName); pkVal = target; } sm.storeObjectField(fmds[0].getIndex(), pkVal); } }