package in.co.sunrays.proj1.service;
import in.co.sunrays.proj1.dao.RoleDAOInt; import in.co.sunrays.proj1.dto.RoleDTO; import in.co.sunrays.proj1.exception.ApplicationException; import in.co.sunrays.proj1.exception.DatabaseException; import in.co.sunrays.proj1.exception.DuplicateRecordException; import java.util.List; import org.apache.log4j.Logger; /** * Spring Implementation of Role service * * @author SUNRAYS Technologies * @version 1.0 * @Copyright (c) SUNRAYS Technologies */ public class RoleServiceSpringImpl implements RoleServiceInt { /** * Logger */ private static Logger log = Logger.getLogger(RoleServiceSpringImpl.class); /** * Get Role Data Access Object */ private RoleDAOInt dao; /** * Injects DAO object * * @param dao */ public void setDao(RoleDAOInt dao) { this.dao = dao; } /** * Add a Role * * @param dto * @throws ApplicationException * @throws DuplicateRecordException * : throws when Role is already exists */ @Override public long add(RoleDTO dto) throws ApplicationException, DuplicateRecordException { log.debug("Service add Started"); long pk = 0; try { RoleDTO dtoExist = dao.findByName(dto.getName()); if (dtoExist != null) { throw new DuplicateRecordException("Name already exists"); } pk = dao.add(dto); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service add End"); return pk; } /** * Update a Role * * @param dto * @throws ApplicationException * @throws DuplicateRecordException * : throws when updated Role is already exist */ @Override public void update(RoleDTO dto) throws ApplicationException, DuplicateRecordException { log.debug("Service update Started"); try { RoleDTO dtoExist = dao.findByName(dto.getName()); // Check if updated Role is already exists if (dtoExist != null && dtoExist.getId() != dto.getId()) { throw new DuplicateRecordException("Duplicate Name"); } dao.update(dto); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service update End"); } /** * Delete a Role * * @param dto * @throws ApplicationException */ @Override public void delete(RoleDTO dto) throws ApplicationException { log.debug("Service delete Started"); try { RoleDTO dtoExist = findByPK(dto.getId()); if (dtoExist == null) { throw new ApplicationException("Role does not exist"); } dao.delete(dto); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service delete End"); } /** * Find Role by Name * * @param name * : get parameter * @return dto * @throws ApplicationException */ @Override public RoleDTO findByName(String name) throws ApplicationException { log.debug("Service findByName Started"); RoleDTO dto; try { dto = dao.findByName(name); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service findByName End"); return dto; } /** * Find Role by PK * * @param pk * : get parameter * @return dto * @throws ApplicationException */ @Override public RoleDTO findByPK(long pk) throws ApplicationException { log.debug("Service findByPK Started"); RoleDTO dto; try { dto = dao.findByPK(pk); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service findByPK End"); return dto; } /** * Search Roles with pagination * * @return list : List of Roles * @param dto * : Search Parameters * @param pageNo * : Current Page No. * @param pageSize * : Size of Page * @throws ApplicationException */ @Override public List search(RoleDTO dto, int pageNo, int pageSize) throws ApplicationException { log.debug("Service search Started"); List list; try { list = dao.search(dto, pageNo, pageSize); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service search End"); return list; } /** * Search Roles * * @return list : List of Roles * @param dto * : Search Parameters * @throws ApplicationException */ @Override public List search(RoleDTO dto) throws ApplicationException { log.debug("Service search Started"); List list; try { list = dao.search(dto); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service search End"); return list; } /** * Get List of Roles * * @return list : List of Roles * @throws ApplicationException */ public List list() throws ApplicationException { log.debug("Service list Started"); List list; try { list = dao.list(); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service list End"); return list; } /** * Get List of Roles with pagination * * @return list : List of Roles * @param pageNo * : Current Page No. * @param pageSize * : Size of Page * @throws ApplicationException */ public List list(int pageNo, int pageSize) throws ApplicationException { log.debug("Service list Started"); List list; try { list = dao.list(pageNo, pageSize); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service list End"); return list; } } |