/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.gadgetcontainer.application;
import com.globant.katari.gadgetcontainer.domain.GadgetGroupRepository;
import com.globant.katari.hibernate.coreuser.DeleteMessage;
import org.apache.commons.lang.Validate;
/** Listens for user delete events and removes the data held by the user.
*/
public class DeleteUserListener {
/** The gadget group repository that stores the user gadgets.
*
* This is never null.
*/
private GadgetGroupRepository gadgetRepository;
/** Constructor.
*
* @param theGadgetRepository The gadget group repository, never null.
*/
public DeleteUserListener(final GadgetGroupRepository theGadgetRepository) {
Validate.notNull(theGadgetRepository,
"The gadget group repository cannot be null.");
gadgetRepository = theGadgetRepository;
}
/** Deletes the user specified in message.
*
* @param message The delete event message sent by the user module when a
* user is about to be deleted.DeleteMessage
*
* @return returns a goAhead message, never null.
*/
public DeleteMessage remove(final DeleteMessage message) {
gadgetRepository.removeGroupsFromUser(message.getUserId());
return message.goAhead();
}
}