/** * On after delete. * * @param event * the event */ @Override public void onAfterDelete(AfterDeleteEvent<IEntity> event) { super.onAfterDelete(event); DBObject dbo = event.getSource(); Class<?> entityType = event.getType(); Class<?> entityContract = entityType; if (Proxy.isProxyClass(entityType)) { for (Class<?> superInterface : entityType.getInterfaces()) { if (IEntity.class.isAssignableFrom(superInterface)) { entityContract = superInterface; } } } IEntity entity = getEntity(entityContract.getName(), (Serializable) dbo.get("_id")); if (entity != null) { ((ILifecycleCapable) entity).onDelete(getEntityFactory(), getPrincipal(), getEntityLifecycleHandler()); } }
/** * On before convert. * * @param event * the event */ @Override public void onBeforeConvert(BeforeConvertEvent<IEntity> event) { IEntity entity = event.getSource(); super.onBeforeConvert(event); // Version has already been changed. if (entity.isPersistent() && entity.getVersion() > 0) { ((ILifecycleCapable) entity).onUpdate(getEntityFactory(), getPrincipal(), getEntityLifecycleHandler()); } else { ((ILifecycleCapable) entity).onPersist(getEntityFactory(), getPrincipal(), getEntityLifecycleHandler()); } }