package in.co.sunrays.proj1.service;
import in.co.sunrays.proj1.dao.MarksheetDAOInt; import in.co.sunrays.proj1.dto.MarksheetDTO; 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 Marksheet Service * * @author SUNRAYS Technologies * @version 1.0 * @Copyright (c) SUNRAYS Technologies */ public class MarksheetServiceSpringImpl implements MarksheetServiceInt { /** * Logger */ private static Logger log = Logger .getLogger(MarksheetServiceSpringImpl.class); /** * Get MarksheetDAO Instance */ private MarksheetDAOInt dao; /** * Injects DAO object * * @param dao */ public void setDao(MarksheetDAOInt dao) { this.dao = dao; } /** * Add a Marksheet * * @param dto * @throws ApplicationException * @throws DuplicateRecordException * : throws when RollNo. is already exists */ @Override public long add(MarksheetDTO dto) throws ApplicationException, DuplicateRecordException { log.debug("Service add Started"); long pk = 0; try { MarksheetDTO duplicateMarksheet = dao.findByRollNo(dto.getRollNo()); if (duplicateMarksheet != null) { throw new DuplicateRecordException("Roll Number 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 Marksheet * * @param dto * @throws ApplicationException * @throws DuplicateRecordException * : throws when updated RollNo. is already exists */ @Override public void update(MarksheetDTO dto) throws ApplicationException, DuplicateRecordException { log.debug("Service update Started"); try { MarksheetDTO dtoExist = dao.findByRollNo(dto.getRollNo()); // Check if updated Roll Number already exists if (dtoExist != null && dtoExist.getId() != dto.getId()) { throw new DuplicateRecordException("Duplicate Roll Number"); } dao.update(dto); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service update End"); } /** * Delete a Marksheet * * @param dto * @throws ApplicationException */ @Override public void delete(MarksheetDTO dto) throws ApplicationException { log.debug("Service delete Started"); try { MarksheetDTO dtoExist = findByPK(dto.getId()); if (dtoExist == null) { throw new ApplicationException("Marksheet 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 Marksheet by Roll No * * @param rollNo * : get parameter * @return dto * @throws ApplicationException */ @Override public MarksheetDTO findByRollNo(String rollNo) throws ApplicationException { log.debug("Service findByRollNo Started"); MarksheetDTO dto; try { dto = dao.findByRollNo(rollNo); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service findByRollNo End"); return dto; } /** * Find Marksheet by PK * * @param pk * : get parameter * @return dto * @throws ApplicationException */ @Override public MarksheetDTO findByPK(long pk) throws ApplicationException { log.debug("Service findByPK Started"); MarksheetDTO 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 Marksheets * * @param dto * : Search Parameters * @throws ApplicationException */ @Override public List search(MarksheetDTO 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; } /** * Search Marksheets with pagination * * @return list : List of Marksheets * @param dto * : Search Parameters * @param pageNo * : Current Page No. * @param pageSize * : Size of Page * @throws ApplicationException */ @Override public List search(MarksheetDTO 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; } /** * Get List of Marksheets * * @return list : List of Marksheets * @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 Marksheets with pagination * * @return list : List of Marksheets * @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; } /** * Get Merit List of Marksheets with pagination * * @return list : List of Marksheets * @param pageNo * : Current Page No. * @param pageSize * : Size of Page * @throws ApplicationException */ @Override public List getMeritList(int pageNo, int pageSize) throws ApplicationException { log.debug("Service getMeritList Started"); List list; try { list = dao.getMeritList(pageNo, pageSize); } catch (DatabaseException e) { log.error("Application Exception..", e); throw new ApplicationException("Database Exception"); } log.debug("Service getMeritList End"); return list; } } |