package net.johnewart.gearman.server.web; import net.johnewart.gearman.engine.core.JobManager; import net.johnewart.gearman.engine.queue.JobQueue; import net.johnewart.gearman.engine.storage.ExceptionData; import net.johnewart.gearman.engine.storage.ExceptionStorageEngine; import net.johnewart.gearman.server.util.JobQueueMonitor; import net.johnewart.gearman.server.util.JobQueueSnapshot; import net.johnewart.gearman.server.util.SystemSnapshot; import org.joda.time.LocalDateTime; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; public class ExceptionsView { protected final ExceptionStorageEngine exceptionStorageEngine; private final int pageSize; private final int pageNum; private final int exceptionCount; public ExceptionsView(ExceptionStorageEngine exceptionStorageEngine, int pageSize, int pageNum) { this.exceptionStorageEngine = exceptionStorageEngine; this.pageSize = pageSize; this.pageNum = pageNum; this.exceptionCount = exceptionStorageEngine.getCount(); } public int getPageSize() { return pageSize; } public int getPageNum() { return pageNum; } public int getPageCount() { return new Double(Math.ceil((double)exceptionCount / (double)pageSize)).intValue(); } public int getNextPageNumber() { return pageNum + 1; } public int getPreviousPageNumber() { return pageNum - 1; } public boolean hasNextPage() { return (pageNum * pageSize < exceptionCount); } public boolean hasPreviousPage() { return pageNum > 1; } public int getExceptionCount() { return exceptionCount; } public int getStart() { return ((pageNum - 1) * pageSize) + 1; } public int getEnd() { int end = pageNum * pageSize; return end > exceptionCount ? exceptionCount : end; } public List<ExceptionData> getExceptions() { return exceptionStorageEngine.getExceptions(pageNum, pageSize); } public String getJobHandle(ExceptionData data) { return data.jobHandle; } public String getUniqueId(ExceptionData data) { return data.uniqueId; } public String getJobDataString(ExceptionData data) { return new String(data.jobData); } public String getExceptionDataString(ExceptionData data) { return new String(data.exceptionData); } public String getDateTime(ExceptionData data) { return data.when.toString(); } }