@Override protected DataMergeContext initialValue() { return new DataMergeContext(); } };
@PostUpdate public void onPostUpdate(Object entity) { DataMergeContext.addLoadedEntity(entity); } }
public static void addLoadedEntity(Object entity) { DataMergeContext mergeContext = dataMergeContext.get(); mergeContext.entityLoaded(entity); }
addLoadedEntity(result); addResultEntity(Array.get(val, i), classGetter, cache); addResultEntity(i.next(), classGetter, cache); addResultEntity(me.getKey(), classGetter, cache); addResultEntity(me.getValue(), classGetter, cache); addResultEntity(val, classGetter, cache);
Object p = DataMergeContext.getLoadedEntity(obj); if (p != null) { dest = previous; DataMergeContext.getCache().put(CacheKey.key(obj, null, null), dest);
private Object mergeArray(ClassGetter classGetter, Object array, Object previous, Object owner, String propertyName) { if (log.isDebugEnabled()) log.debug("Context mergeArray: " + array + (previous != null ? " previous " + previous.getClass().getName() : "")); Object key = CacheKey.key(array, owner, propertyName); int length = Array.getLength(array); Object prevArray = ArrayUtil.newArray(ArrayUtil.getComponentType(array.getClass()), length); DataMergeContext.getCache().put(key, prevArray); for (int i = 0; i < length; i++) { Object obj = Array.get(array, i); Array.set(prevArray, i, mergeExternal(classGetter, obj, null, null, null)); } return prevArray; }
@Override protected void afterInvocationError(ServiceInvocationContext context, Throwable error) { String componentName = null; Class<?> componentClass = null; try { Object[] originArgs = (Object[])context.getMessage().getBody(); String operation = ((RemotingMessage)context.getMessage()).getOperation(); componentName = "invokeComponent".equals(operation) ? (String)originArgs[0] : null; String componentClassName = "invokeComponent".equals(operation) ? (String)originArgs[1] : null; try { if (componentClassName != null) componentClass = TypeUtil.forName(componentClassName); } catch (ClassNotFoundException e) { throw new ServiceException("Component class not found " + componentClassName, e); } } finally { tideContext.postCallFault(context, error, componentName, componentClass); } DataMergeContext.remove(); DataContext.remove(); } }
public void restoreLoadedEntities() { DataMergeContext.restoreLoadedEntities(loadedEntities); }
public void saveLoadedEntities() { for (Object entity : DataMergeContext.getLoadedEntities()) loadedEntities.add(entity); } }
public static void addResultEntity(Object result) { DataMergeContext mergeContext = dataMergeContext.get(); ClassGetter classGetter = ((ConvertersConfig)GraniteContext.getCurrentInstance().getGraniteConfig()).getClassGetter(); mergeContext.addResultEntity(result, classGetter, new HashSet<Object>()); }
log.debug("Context mergeMap: " + map + (previous != null ? " previous " + previous.getClass().getName() : "")); Map<Object, Object> cache = DataMergeContext.getCache(); Object cacheKey = CacheKey.key(map, owner, propertyName); if (previous != null && previous instanceof Map<?, ?>)
DataMergeContext.remove();
log.debug("Context mergeCollection: " + coll + (previous != null ? " previous " + previous.getClass().getName() : "")); Map<Object, Object> cache = DataMergeContext.getCache(); Object key = CacheKey.key(coll, owner, propertyName); if (previous != null && previous instanceof Collection<?>)
@PostPersist public void onPostPersist(Object entity) { DataMergeContext.addLoadedEntity(entity); }
Map<Object, Object> cache = DataMergeContext.getCache(); Object key = CacheKey.key(obj, owner, propertyName); Object prev = cache.get(key);
@PostLoad public void onPostLoad(Object entity) { DataMergeContext.addLoadedEntity(entity); }