/**
 * ÀÌ ¼Ò½º´Â Spring ÇÁ·¹ÀÓ¿öÅ© ¿öÅ©ºÏ¿¡¼­ »ç¿ëÇÑ ¿¹Á¦ ¼Ò½ºÀÔ´Ï´Ù. 
 * ÀÌ ¼Ò½º´Â ¸ðµç °³¹ßÀÚµéÀÌ ÀÚÀ¯·Ó°Ô ¼öÁ¤ ¹× ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. 
 * ´Ü, ÀÌ ¼Ò½º¸¦ ±â¹ÝÀ¸·Î »õ·Î¿î ¾ÖÇÃ¸®ÄÉÀÌ¼ÇÀ» °³¹ßÇÒ °æ¿ì ÃâÃ³¸¦ ¸í½ÃÇØ ÁÖ½Ã¸é µË´Ï´Ù. 
 */
package net.javajigi.user.service;

import java.util.List;

import net.javajigi.common.mail.ExceptionMailSender;
import net.javajigi.user.ExistedUserException;
import net.javajigi.user.PasswordMismatchException;
import net.javajigi.user.UserNotFoundException;
import net.javajigi.user.dao.UserDAO;
import net.javajigi.user.model.User;

import org.springframework.context.ApplicationContextAware;

/**
 * ÁÖ¼®À» ³Ö¾î ÁÖ¼¼¿ä. ¹è°¡ °íÆÄ¿ä.
 * 
 * @author ¹ÚÀç¼º(ÀÚ¹ÙÁö±â, javajigi@gmail.com)
 */
public interface UserService extends ApplicationContextAware{
	public void setUserDAO(UserDAO userDAO);

	public void setMailSender(ExceptionMailSender mailSender);

	public int addUser(User user) throws ExistedUserException;

	public int updateUser(User user);

	public int removeUser(String userId);

	public User findUser(String userId) throws UserNotFoundException;

	public List findUserList();

	public boolean login(String userId, String password)
			throws PasswordMismatchException, UserNotFoundException;
}
