/** * Used by proxy types to dirty their owner. */ public static void dirty(Proxy proxy, boolean stopTracking) { if (proxy.getOwner() != null) proxy.getOwner().dirty(proxy.getOwnerField()); if (stopTracking && proxy.getChangeTracker() != null) proxy.getChangeTracker().stopTracking(); }
/** * Set the owner of the field's proxy to the detached state manager. */ private Object reproxy(Object obj, int field) { if (obj != null && _detSM != null && obj instanceof Proxy) ((Proxy) obj).setOwner(_detSM, field); return obj; }
/** * Used by proxy types to check if the given owners and field names * are equivalent. */ public static boolean isOwner(Proxy proxy, OpenJPAStateManager sm, int field) { return proxy.getOwner() == sm && proxy.getOwnerField() == field; }
/** * Unproxies the current field if needed. */ public void unproxy() { if (objval == null) return; FieldMetaData fmd = _sm.getMetaData().getField(field); switch (fmd.getDeclaredTypeCode()) { case JavaTypes.COLLECTION: case JavaTypes.MAP: case JavaTypes.DATE: case JavaTypes.OBJECT: if (objval instanceof Proxy) { Proxy proxy = (Proxy) objval; proxy.setOwner(null, -1); if (proxy.getChangeTracker() != null) proxy.getChangeTracker().stopTracking(); } } }
public Map copyMap(Map orig) { if (orig == null) return null; if (orig instanceof Proxy) return (Map) ((Proxy) orig).copy(orig); ProxyMap proxy = getFactoryProxyMap(orig.getClass()); return (Map) proxy.copy(orig); }
if (!_detachProxies) { proxy.setOwner(null, -1); return; Object unproxied = proxy.copy(proxy); fm.storeObjectField(fieldIndex, unproxied); sm.replaceField(pc, fm, fieldIndex); fm.clear(); proxy.setOwner(null, -1); if (proxy.getChangeTracker() != null) { proxy.getChangeTracker().stopTracking();
/** * Get added values. If the item is not a proxy it is returned as a collection * * @param field * @return */ @SuppressWarnings("rawtypes") private Collection getAdded(Collection field) { if (field instanceof Proxy) { return ((Proxy) field).getChangeTracker().getAdded(); } return field; }
/** * If the current field is a usable proxy, return it; else return null. */ private Proxy checkProxy() { if (!(objval instanceof Proxy)) return null; Proxy proxy = (Proxy) objval; if (proxy.getOwner() == null || Proxies.isOwner(proxy, _sm, field)) return proxy; return null; }
/** * Unproxies the current field if needed. */ public void unproxy() { if (objval == null) return; FieldMetaData fmd = _sm.getMetaData().getField(field); switch (fmd.getDeclaredTypeCode()) { case JavaTypes.COLLECTION: case JavaTypes.MAP: case JavaTypes.DATE: case JavaTypes.OBJECT: if (objval instanceof Proxy) { Proxy proxy = (Proxy) objval; proxy.setOwner(null, -1); if (proxy.getChangeTracker() != null) proxy.getChangeTracker().stopTracking(); } } }
/** * Used by proxy types to check if the given owners and field names * are equivalent. */ public static boolean isOwner(Proxy proxy, OpenJPAStateManager sm, int field) { return proxy.getOwner() == sm && proxy.getOwnerField() == field; }
public Calendar copyCalendar(Calendar orig) { if (orig == null) return null; if (orig instanceof Proxy) return (Calendar) ((Proxy) orig).copy(orig); ProxyCalendar proxy = getFactoryProxyCalendar(orig.getClass()); return (Calendar) proxy.copy(orig); }
if (!_detachProxies) { proxy.setOwner(null, -1); return; Object unproxied = proxy.copy(proxy); fm.storeObjectField(fieldIndex, unproxied); sm.replaceField(pc, fm, fieldIndex); fm.clear(); proxy.setOwner(null, -1); if (proxy.getChangeTracker() != null) { proxy.getChangeTracker().stopTracking();
/** * Return the collection of deleted objects from the proxy. If none is preset * then null is returned * * @param field * @return */ public static Collection<?> getRemoved(Collection<?> field) { if (field instanceof Proxy) { return ((Proxy) field).getChangeTracker().getRemoved(); } return null; }
/** * If the current field is a usable proxy and it should be a proxy, return it; else return null. * * This method will skim out Calendar instances that were proxied before we knew if they need to be proxied. */ private Proxy checkProxy(FieldMetaData fmd) { if (!(objval instanceof Proxy)) return null; Proxy proxy = (Proxy) objval; if (proxy.getOwner() == null || Proxies.isOwner(proxy, _sm, field)) { if (fmd.getProxyType().isAssignableFrom(proxy.getClass()) || (fmd.isLRS() && (objval instanceof LRSProxy))) { return proxy; } } return null; }
/** * Unproxies the current field if needed. */ public void unproxy() { if (objval == null) return; FieldMetaData fmd = _sm.getMetaData().getField(field); switch (fmd.getDeclaredTypeCode()) { case JavaTypes.COLLECTION: case JavaTypes.MAP: case JavaTypes.DATE: case JavaTypes.OBJECT: if (objval instanceof Proxy) { Proxy proxy = (Proxy) objval; proxy.setOwner(null, -1); if (proxy.getChangeTracker() != null) proxy.getChangeTracker().stopTracking(); } } }
/** * Used by proxy types to dirty their owner. */ public static void dirty(Proxy proxy, boolean stopTracking) { if (proxy.getOwner() != null) proxy.getOwner().dirty(proxy.getOwnerField()); if (stopTracking && proxy.getChangeTracker() != null) proxy.getChangeTracker().stopTracking(); }
/** * Used by proxy types to check if the given owners and field names * are equivalent. */ public static boolean isOwner(Proxy proxy, OpenJPAStateManager sm, int field) { return proxy.getOwner() == sm && proxy.getOwnerField() == field; }
public Collection copyCollection(Collection orig) { if (orig == null) return null; if (orig instanceof Proxy) return (Collection) ((Proxy) orig).copy(orig); ProxyCollection proxy = getFactoryProxyCollection(orig.getClass()); return (Collection) proxy.copy(orig); }
/** * Set the owner of the field's proxy to the detached state manager. */ private Object reproxy(Object obj, int field) { if (obj != null && _detSM != null && obj instanceof Proxy) ((Proxy) obj).setOwner(_detSM, field); return obj; }