/** * {@inheritDoc} * * @return the entity lifecycle handler */ protected IEntityLifecycleHandler getEntityLifecycleHandler() { return getBackendController(); }
/** * 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()); } }
/** * 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()); } }
/** * Gets the principal of the application session. * <p/> * {@inheritDoc} * * @return the principal */ protected UserPrincipal getPrincipal() { return getBackendController().getApplicationSession().getPrincipal(); }
/** * Gets entity. * * @param entityName * the entity name * @param id * the id * @return the entity */ @SuppressWarnings("unchecked") protected IEntity getEntity(String entityName, Serializable id) { IEntity registeredEntity = null; try { if (getBackendController().isUnitOfWorkActive()) { registeredEntity = getBackendController().getUnitOfWorkEntity((Class<? extends IEntity>) Class.forName( entityName), id); } else { registeredEntity = getBackendController().getRegisteredEntity((Class<? extends IEntity>) Class.forName( entityName), id); if (registeredEntity instanceof HibernateProxy) { HibernateProxy proxy = (HibernateProxy) registeredEntity; LazyInitializer li = proxy.getHibernateLazyInitializer(); registeredEntity = (IEntity) li.getImplementation(); } } } catch (ClassNotFoundException ex) { LOG.error("Class for entity {} was not found", entityName, ex); } return registeredEntity; }
/** * On after save. * * @param event * the event */ @Override public void onAfterSave(AfterSaveEvent<IEntity> event) { super.onAfterSave(event); IEntity entity = event.getSource(); getBackendController().recordAsSynchronized(entity); }
/** * On after convert. * * @param event * the event */ @Override public void onAfterConvert(AfterConvertEvent<IEntity> event) { super.onAfterConvert(event); IEntity entity = event.getSource(); getBackendController().registerEntity(entity); ((ILifecycleCapable) entity).onLoad(); }