public ChangeEntityRef(Object change, ClientAliasRegistry aliasRegistry) { if (change instanceof Change) { className = ((Change)change).getClassName(); uid = ((Change)change).getUid(); } else if (change instanceof ChangeRef) { className = ((ChangeRef)change).getClassName(); uid = ((ChangeRef)change).getUid(); } if (aliasRegistry.getTypeForAlias(className) != null) className = aliasRegistry.getTypeForAlias(className); }
public static void publish(PublishMode publishMode) { DataContext dc = get(); if (dc != null && dc.dataDispatcher != null && !dc.dataUpdates.isEmpty() && !dc.published && (publishMode == PublishMode.MANUAL || (dc.publishMode.equals(publishMode)))) { log.debug("Publish %s data updates with mode %s", dc.dataUpdates.size(), dc.publishMode); dc.dataDispatcher.publish(dc.getUpdates()); // Publish can be called only once but we have to keep the updates until the end of a GraniteDS request dc.published = true; } }
@PostUpdate public void onPostUpdate(Object entity) { if (handleExclude(entity)) return; DataContext.addUpdate(EntityUpdateType.UPDATE, entity, entity); }
@SuppressWarnings("unchecked") public <V> V getChangeValue(int index, Class<V> cast) { return (V)changes[index].getValue(); }
@Override public void prepareCall(ServiceInvocationContext context, IInvocationCall c, String componentName, Class<?> componentClass) { // Initialize an empty data context DataContext.init(); }
public Object begin(TideTransactionPersistenceManager pm) { if (pm != null) return pm.getCurrentTransaction(); return null; }
public static void addUpdate(EntityUpdateType type, Object entity, Object source) { addUpdate(type, entity, source, 0); } public static void addUpdate(EntityUpdateType type, Object entity, Object source, int priority) {
private static boolean containsParams(List<DataObserveParams> selectors, DataObserveParams params) { for (DataObserveParams selector : selectors) { if (selector.containsParams(params)) return true; } return false; }
@Override protected DataMergeContext initialValue() { return new DataMergeContext(); } };
public Object[] toArray() { return new Object[] { type.name(), entity, source }; } }
public void onPostInsert(PostInsertEvent event) { if (DataPublishListener.handleExclude(event.getEntity())) return; DataContext.addUpdate(EntityUpdateType.PERSIST, event.getEntity(), event.getEntity()); }
@SuppressWarnings("unchecked") public <V> V getChangeValue(int index, Class<V> cast) { return (V)changes[index].getValue(); }
public Object begin(TideTransactionPersistenceManager pm) { if (pm != null) return pm.getCurrentTransaction(); return null; }
public static boolean containsSame(List<DataObserveParams> selectors1, List<DataObserveParams> selectors2) { for (DataObserveParams selector : selectors2) { if (!containsParams(selectors1, selector)) return false; } for (DataObserveParams selector : selectors1) { if (!containsParams(selectors2, selector)) return false; } return true; }