/** * CopyRight by Chinamobile * * MessageService.java */ package com.chinamobile.bcbsp.fault.browse; import java.util.ArrayList; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.chinamobile.bcbsp.fault.storage.Fault; public class MessageService { private int currentPage = 1; private int pageSize = 10; private List<Fault> totalList = new ArrayList<Fault>(); private static final Log LOG = LogFactory.getLog(MessageService.class); public static enum Type { TYPE, LEVEL, TIMEOFFAILURE, WORKERNODENAME, JOBNAME, STAFFNAME, EXCEPTIONMESSAGE, FAULTSTATUS } private List<Fault> getTotalList() { return totalList; } private void setTotalList(List<Fault> totalList) { this.totalList = totalList; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getCurrentPage() { return this.currentPage; } public int getPageSize() { return this.pageSize; } public int getTotalRows() { List<Fault> list = getTotalList(); return list.size(); } public int getTotalPages() { int total = getTotalRows() / getPageSize(); int left = getTotalRows() % getPageSize(); if (left != 0) { total = total + 1; } return total; } public List<Fault> getPageByType(int pageNumber, String type) { Browse br = new Browse(); if (type.equals("TYPE")) { setTotalList(br.retrieveByType()); } else if (type.equals("LEVEL")) { setTotalList(br.retrieveByLevel()); } else if (type.equals("TIME")) { LOG.info("+++++++++++enter the getFile(n) from TIME"); setTotalList(br.retrieveByTime()); } else if (type.equals("WORKER")) { setTotalList(br.retrieveByPosition()); } else { setTotalList(br.retrieveByTime()); } List<Fault> res = new ArrayList<Fault>(); if(getTotalList().size()==0){ return res; } this.setCurrentPage(pageNumber); int totalPages = getTotalPages(); if (currentPage <= 1) { currentPage = 1; } if (currentPage >= totalPages) { currentPage = totalPages; } if (currentPage >= 1 && currentPage < totalPages) { for (int i = (currentPage - 1) * pageSize; i < currentPage * pageSize; i++) { res.add(totalList.get(i)); } } else if (currentPage == totalPages) { for (int i = (currentPage - 1) * pageSize; i < getTotalRows(); i++) { res.add(totalList.get(i)); } } return res; } public List<Fault> getPageByType(int pageNumber, String type,int num) { Browse br = new Browse(); if (type.equals("TYPE")) { setTotalList(br.retrieveByType(num)); } else if (type.equals("LEVEL")) { setTotalList(br.retrieveByLevel(num)); } else if (type.equals("TIME")) { setTotalList(br.retrieveByTime(num)); } else if (type.equals("WORKER")) { setTotalList(br.retrieveByPosition(num)); } else { setTotalList(br.retrieveByTime(num)); } List<Fault> res = new ArrayList<Fault>(); if(getTotalList().size()==0){ return res; } this.setCurrentPage(pageNumber); int totalPages = getTotalPages(); if (currentPage <= 1) { currentPage = 1; } if (currentPage >= totalPages) { currentPage = totalPages; } if (currentPage >= 1 && currentPage < totalPages) { for (int i = (currentPage - 1) * pageSize; i < currentPage * pageSize; i++) { res.add(totalList.get(i)); } } else if (currentPage == totalPages) { for (int i = (currentPage - 1) * pageSize; i < getTotalRows(); i++) { res.add(totalList.get(i)); } } return res; } public List<Fault> getPageByKey(int pageNumber, String key) { Browse br = new Browse(); String[] keys ={key}; setTotalList(br.retrieveWithMoreKeys(keys)); List<Fault> res = new ArrayList<Fault>(); if(getTotalList().size()==0){ return res; } this.setCurrentPage(pageNumber); int totalPages = getTotalPages(); if (currentPage <= 1) { currentPage = 1; } if (currentPage >= totalPages) { currentPage = totalPages; } if (currentPage >= 1 && currentPage < totalPages) { for (int i = (currentPage - 1) * pageSize; i < currentPage * pageSize; i++) { res.add(totalList.get(i)); } } else if (currentPage == totalPages) { for (int i = (currentPage - 1) * pageSize; i < getTotalRows(); i++) { res.add(totalList.get(i)); } } return res; } public List<Fault> getPageByKey(int pageNumber, String key,int num) { Browse br = new Browse(); String[] keys ={key}; if(key!=null){ } setTotalList(br.retrieveWithMoreKeys(keys,num)); List<Fault> res = new ArrayList<Fault>(); if(getTotalList().size()==0){ return res; } this.setCurrentPage(pageNumber); int totalPages = getTotalPages(); if (currentPage <= 1) { currentPage = 1; } if (currentPage >= totalPages) { currentPage = totalPages; } if (currentPage >= 1 && currentPage < totalPages) { for (int i = (currentPage - 1) * pageSize; i < currentPage * pageSize; i++) { res.add(totalList.get(i)); } } else if (currentPage == totalPages) { for (int i = (currentPage - 1) * pageSize; i < getTotalRows(); i++) { res.add(totalList.get(i)); } } return res; } public List<Fault> getPageByKeys(int pageNumber, String[] keys) { Browse br = new Browse(); setTotalList(br.retrieveWithMoreKeys(keys)); List<Fault> res = new ArrayList<Fault>(); if(getTotalList().size()==0){ return res; } this.setCurrentPage(pageNumber); int totalPages = getTotalPages(); if (currentPage <= 1) { currentPage = 1; } if (currentPage >= totalPages) { currentPage = totalPages; } if (currentPage >= 1 && currentPage < totalPages) { for (int i = (currentPage - 1) * pageSize; i < currentPage * pageSize; i++) { res.add(totalList.get(i)); } } else if (currentPage == totalPages) { for (int i = (currentPage - 1) * pageSize; i < getTotalRows(); i++) { res.add(totalList.get(i)); } } return res; } public List<Fault> getPageByKeys(int pageNumber, String[] keys, int num) { Browse br = new Browse(); setTotalList(br.retrieveWithMoreKeys(keys,num)); List<Fault> res = new ArrayList<Fault>(); if(getTotalList().size()==0){ return res; } this.setCurrentPage(pageNumber); int totalPages = getTotalPages(); if (currentPage <= 1) { currentPage = 1; } if (currentPage >= totalPages) { currentPage = totalPages; } if (currentPage >= 1 && currentPage < totalPages) { for (int i = (currentPage - 1) * pageSize; i < currentPage * pageSize; i++) { res.add(totalList.get(i)); } } else if (currentPage == totalPages) { for (int i = (currentPage - 1) * pageSize; i < getTotalRows(); i++) { res.add(totalList.get(i)); } } return res; } }