package fr.openwide.core.test.jpa.more.business.interceptor; import java.io.Serializable; import java.util.Map; import org.hibernate.CallbackException; import org.hibernate.type.Type; import com.google.common.collect.Maps; import fr.openwide.core.jpa.hibernate.interceptor.AbstractChainableInterceptor; import fr.openwide.core.test.jpa.more.business.entity.model.TestEntity; public class TestEntityInterceptor extends AbstractChainableInterceptor { @Override public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) throws CallbackException { Map<String, Object> changes = Maps.newHashMap(); changes.put("classicInterceptorSave", "interceptor"); updatePropertyValues(changes, propertyNames, state); return true; } @Override public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) throws CallbackException { Map<String, Object> changes = Maps.newHashMap(); changes.put("classicInterceptorFlushDirty", "interceptor"); updatePropertyValues(changes, propertyNames, currentState); return true; } @Override public boolean applyTo(Object entity) { return isOfClass(entity, TestEntity.class); } }