package models.dao; import javax.inject.Inject; import models.Owned; import models.User; import play.utils.dao.DAOListenerAdapter; public class OwnerCacheCleaner<K, M extends Owned<K>> extends DAOListenerAdapter<K, M> { private UserDAO userDAO; @Inject public OwnerCacheCleaner(UserDAO userDAO) { this.userDAO = userDAO; } @Override public void afterCreate(K key, M m) { User owner = m.getCreatedBy(); if (owner != null) userDAO.cacheClean(owner.getKey()); } @Override public void afterRemove(K key, M m) { User owner = m.getCreatedBy(); if (owner != null) userDAO.cacheClean(owner.getKey()); } @Override public void afterUpdate(M m) { User owner = m.getCreatedBy(); if (owner != null) userDAO.cacheClean(owner.getKey()); } }