UserServiceInt.java

package com.sunilos.proj0.service;

import java.util.List;

import com.sunilos.proj0.dto.RoleDTO;

import com.sunilos.proj0.dto.UserDTO;

import com.sunilos.proj0.exception.ApplicationException;

/**

* User Service interface.

*

* @author SunilOS

* @version 1.0

* @Copyright (c) SunilOS

*/

public interface UserServiceInt {

/**

* Adds a user

*

* @param dto

*/

public long add(UserDTO dto);

/**

* Registers a user

*

* @param dto

* @throws ApplicationException

*/

public long registerUser(UserDTO dto);

/**

* Updates a User

*

* @param dto

*/

public void update(UserDTO dto);

/**

* Deletes a user

*

* @param dto

*/

public void delete(long id);

/**

* Finds user by Login

*

* @param login

* : get parameter

* @return dto

*/

public UserDTO findByLogin(String login);

/**

* Finds user by PK

*

* @param pk

* : get parameter

* @return dto

*/

public UserDTO findByPK(long pk);

/**

* Searches Users with pagination

*

* @return list : List of Users

* @param dto

* : Search Parameters

* @param pageNo

* : Current Page No.

* @param pageSize

* : Size of Page

*/

public List search(UserDTO dto, int pageNo, int pageSize);

/**

* Searches Users

*

* @return list : List of Users

* @param dto

* : Search Parameters

*/

public List search(UserDTO dto);

/**

* Change Password By pk

*

* @param pk

* ,oldPassword,newPassword : get parameter

* @return dto

*/

public boolean changePassword(Long id, String oldPassword,

String newPassword);

/**

* User Authentication

*

* @return dto : Contains User's information

* @param dto

*/

public UserDTO authenticate(UserDTO dto);

/**

* Lock User for certain time duration

*

* @return boolean : true if success otherwise false

* @param login

* : User Login

*/

public boolean lock(String login);

/**

* Reset Password of User with auto generated Password

*

* @return boolean : true if success otherwise false

* @param login

* : User Login

* @throws ApplicationException

*/

public boolean resetPassword(String login) throws ApplicationException;

/**

* Send the password of User to his Email

*

* @return boolean : true if success otherwise false

* @param login

* : User Login

* @throws ApplicationException

*/

public boolean forgetPassword(String login) throws ApplicationException;

/**

* Get User Roles

*

* @return RoleDTO : User Role

* @param dto

*/

public RoleDTO getRole(UserDTO dto);

/**

* Update User access

*

* @return dto

* @param dto

* @throws ApplicationException

*/

public UserDTO updateAccess(UserDTO dto);

}