@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClassName()).append(':').append(getUid()).append(":").append(getId()); return sb.toString(); }
private boolean isForEntity(MergeContext mergeContext, ChangeRef changeRef, Object entity) { String className = mergeContext.getServerSession().getAliasRegistry().getTypeForAlias(changeRef.getClassName()); return entity.getClass().getName().equals(className) && changeRef.getUid().equals(mergeContext.getDataManager().getUid(entity)); }
ChangeRef ref = (ChangeRef)entity; try { Class<?> entityClass = TypeUtil.forName(ref.getClassName()); Entity e = new Entity(entityClass); Serializable refId = (Serializable)converters.convert(ref.getId(), e.getIdentifierType()); throw new ServiceException("Could not find class " + ref.getClassName(), cnfe);
private Object buildRef(Object object) { if (!isEntity(object)) return object; if (!dataManager.hasVersionProperty(object)) throw new IllegalArgumentException("Cannot build ChangeSet for non versioned entity " + object.getClass().getName()); if (dataManager.getVersion(object) != null) return new ChangeRef(getAlias(object.getClass().getName()), dataManager.getUid(object), (Serializable)dataManager.getId(object)); // Force attachment/init of uids of ref object in case some deep elements in the graph are not yet managed in the current context // So the next merge in the tmp context does not attach newly added objects to the tmp context entityManager.attach(object); return tmpEntityManager.mergeFromEntityManager(entityManager, serverSession, object, null, true); } }
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); }
if (value != null && value.getClass().isAnnotationPresent(Entity.class)) { org.granite.util.Entity e = new org.granite.util.Entity(value); value = new ChangeRef(e.getName(), (String)get(value, "uid"), (Serializable)e.getIdentifier());
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClassName()).append(':').append(getUid()).append(":").append(getId()); return sb.toString(); }
public void onPostDelete(PostDeleteEvent event) { if (DataPublishListener.handleExclude(event.getEntity())) return; String uid = getUid(event.getPersister(), event.getEntity()); if (uid != null) { ChangeRef deleteRef = new ChangeRef(event.getPersister().getEntityName(), uid, event.getId()); DataContext.addUpdate(EntityUpdateType.REMOVE, deleteRef, event.getEntity()); } else DataContext.addUpdate(EntityUpdateType.REMOVE, event.getEntity(), event.getEntity()); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClassName()).append(':').append(getUid()).append(":").append(getId()); return sb.toString(); }