1 31 32 package org.opencms.report; 33 34 import org.opencms.file.CmsObject; 35 import org.opencms.main.OpenCms; 36 import org.opencms.util.CmsUUID; 37 38 import java.util.List ; 39 import java.util.Locale ; 40 41 50 public abstract class A_CmsReportThread extends Thread implements I_CmsReportThread { 51 52 53 private CmsObject m_cms; 54 55 56 private boolean m_doomed; 57 58 59 private CmsUUID m_id; 60 61 62 private I_CmsReport m_report; 63 64 65 private long m_starttime; 66 67 73 protected A_CmsReportThread(CmsObject cms, String name) { 74 75 super(OpenCms.getThreadStore().getThreadGroup(), name); 76 setDaemon(false); 78 m_cms = cms; 80 m_cms.getRequestContext().setUpdateSessionEnabled(false); 81 m_id = new CmsUUID(); 83 setName(name + " [" + m_id + "]"); 84 m_doomed = false; 86 m_starttime = System.currentTimeMillis(); 88 OpenCms.getThreadStore().addThread(this); 90 } 91 92 97 public void addError(Object obj) { 98 99 if (m_report != null) { 100 m_report.addError(obj); 101 } 102 } 103 104 110 public Throwable getError() { 111 112 return null; 113 } 114 115 120 public List getErrors() { 121 122 if (m_report != null) { 123 return m_report.getErrors(); 124 } else { 125 return null; 126 } 127 } 128 129 134 public abstract String getReportUpdate(); 135 136 141 public long getRuntime() { 142 143 if (m_doomed) { 144 return m_starttime; 145 } else { 146 return System.currentTimeMillis() - m_starttime; 147 } 148 } 149 150 155 public CmsUUID getUUID() { 156 157 return m_id; 158 } 159 160 165 public boolean hasError() { 166 167 if (m_report != null) { 168 return (m_report.getErrors().size() > 0); 169 } else { 170 return false; 171 } 172 } 173 174 183 public synchronized boolean isDoomed() { 184 185 if (isAlive()) { 186 return false; 188 } 189 if (m_doomed) { 190 return true; 192 } 193 m_starttime = getRuntime(); 195 m_doomed = true; 196 return false; 197 } 198 199 204 protected CmsObject getCms() { 205 206 return m_cms; 207 } 208 209 214 protected I_CmsReport getReport() { 215 216 return m_report; 217 } 218 219 224 protected void initHtmlReport(Locale locale) { 225 226 m_report = new CmsHtmlReport(locale, m_cms.getRequestContext().getSiteRoot()); 227 } 228 229 237 protected void initOldHtmlReport(Locale locale) { 238 239 m_report = new CmsHtmlReport(locale, m_cms.getRequestContext().getSiteRoot(), true); 240 } 241 } 242
| Popular Tags
|