| 1 34 package org.dspace.checker; 35 36 import java.io.IOException ; 37 import java.io.OutputStreamWriter ; 38 import java.text.DateFormat ; 39 import java.util.Date ; 40 import java.util.Iterator ; 41 import java.util.List ; 42 43 import org.apache.log4j.Logger; 44 import org.dspace.core.I18N; 45 46 56 public class SimpleReporterImpl implements SimpleReporter 57 { 58 59 private static Logger LOG = Logger.getLogger(SimpleReporterImpl.class); 60 61 62 private static final DateFormat DATE_FORMAT_MAX = DateFormat 63 .getDateInstance(DateFormat.MEDIUM); 64 65 66 private static final DateFormat DATE_FORMAT_MIN = DateFormat 67 .getDateInstance(DateFormat.SHORT); 68 69 70 private ReporterDAO reporter = null; 71 72 private String msg(String key) 73 { 74 return I18N.message(key, SimpleReporterImpl.class); 75 } 76 77 83 public SimpleReporterImpl() 84 { 85 this.reporter = new ReporterDAO(); 86 } 87 88 104 public int getDeletedBitstreamReport(Date startDate, Date endDate, 105 OutputStreamWriter osw) throws IOException  106 { 107 List history = reporter.getBitstreamResultTypeReport(startDate, 109 endDate, ChecksumCheckResults.BITSTREAM_MARKED_DELETED); 110 111 osw.write("\n"); 112 osw.write(msg("deleted-bitstream-intro")); 113 osw.write(DATE_FORMAT_MIN.format(startDate)); 114 osw.write(" "); 115 osw.write(msg("date-range-to")); 116 osw.write(" "); 117 osw.write(DATE_FORMAT_MIN.format(endDate)); 118 osw.write("\n\n\n"); 119 120 if (history.size() == 0) 121 { 122 osw.write("\n\n"); 123 osw.write(msg("no-bitstreams-to-delete")); 124 osw.write("\n"); 125 } 126 else 127 { 128 printHistoryRecords(history, osw); 129 } 130 131 return history.size(); 132 } 133 134 149 public int getChangedChecksumReport(Date startDate, Date endDate, 150 OutputStreamWriter osw) throws IOException  151 { 152 List history = reporter.getBitstreamResultTypeReport(startDate, 154 endDate, ChecksumCheckResults.CHECKSUM_NO_MATCH); 155 156 osw.write("\n"); 157 osw.write(msg("checksum-did-not-match")); 158 osw.write(" "); 159 osw.write("\n"); 160 osw.write(DATE_FORMAT_MIN.format(startDate)); 161 osw.write(" "); 162 osw.write(msg("date-range-to")); 163 osw.write(" "); 164 osw.write(DATE_FORMAT_MIN.format(endDate)); 165 osw.write("\n\n\n"); 166 167 if (history.size() == 0) 168 { 169 osw.write("\n\n"); 170 osw.write(msg("no-changed-bitstreams")); 171 osw.write("\n"); 172 } 173 else 174 { 175 printHistoryRecords(history, osw); 176 } 177 178 return history.size(); 179 } 180 181 196 public int getBitstreamNotFoundReport(Date startDate, Date endDate, 197 OutputStreamWriter osw) throws IOException  198 { 199 List history = reporter.getBitstreamResultTypeReport(startDate, 201 endDate, ChecksumCheckResults.BITSTREAM_NOT_FOUND); 202 203 osw.write("\n"); 204 osw.write(msg("bitstream-not-found-report")); 205 osw.write(DATE_FORMAT_MIN.format(startDate)); 206 osw.write(" "); 207 osw.write(msg("date-range-to")); 208 osw.write(" "); 209 osw.write(DATE_FORMAT_MIN.format(endDate)); 210 osw.write("\n\n\n"); 211 212 if (history.size() == 0) 213 { 214 osw.write("\n\n"); 215 osw.write(msg("no-bitstreams-changed")); 216 osw.write("\n"); 217 } 218 else 219 { 220 printHistoryRecords(history, osw); 221 } 222 223 return history.size(); 224 } 225 226 242 public int getNotToBeProcessedReport(Date startDate, Date endDate, 243 OutputStreamWriter osw) throws IOException  244 { 245 List history = reporter.getNotProcessedBitstreamsReport(startDate, 247 endDate); 248 249 osw.write("\n"); 250 osw.write(msg("bitstream-will-no-longer-be-processed")); 251 osw.write(" "); 252 osw.write(DATE_FORMAT_MIN.format(startDate)); 253 osw.write(" "); 254 osw.write(msg("date-range-to")); 255 osw.write(" "); 256 osw.write(DATE_FORMAT_MIN.format(endDate)); 257 osw.write("\n\n\n"); 258 259 if (history.size() == 0) 260 { 261 osw.write("\n\n"); 262 osw.write(msg("no-bitstreams-to-no-longer-be-processed")); 263 osw.write("\n"); 264 } 265 else 266 { 267 printHistoryRecords(history, osw); 268 } 269 270 return history.size(); 271 } 272 273 284 public int getUncheckedBitstreamsReport(OutputStreamWriter osw) 285 throws IOException  286 { 287 List bitstreams = reporter.getUnknownBitstreams(); 289 290 osw.write("\n"); 291 osw.write(msg("unchecked-bitstream-report")); 292 osw.write(DATE_FORMAT_MIN.format(new Date ())); 293 osw.write("\n\n\n"); 294 295 if (bitstreams.size() == 0) 296 { 297 osw.write("\n\n"); 298 osw.write(msg("no-unchecked-bitstreams")); 299 osw.write("\n"); 300 } 301 else 302 { 303 osw.write(msg("howto-add-unchecked-bitstreams")); 304 osw.write("\n\n\n"); 305 this.printDSpaceInfoRecords(bitstreams, osw); 306 } 307 308 return bitstreams.size(); 309 } 310 311 322 private void printHistoryRecords(List history, OutputStreamWriter osw) 323 throws IOException  324 { 325 Iterator iter = history.iterator(); 326 while (iter.hasNext()) 327 { 328 ChecksumHistory historyInfo = (ChecksumHistory) iter.next(); 329 StringBuffer buf = new StringBuffer (1000); 330 buf.append("------------------------------------------------ \n"); 331 buf.append(msg("bitstream-id")).append(" = ").append( 332 historyInfo.getBitstreamId()).append("\n"); 333 buf.append(msg("process-start-date")).append(" = ").append( 334 DATE_FORMAT_MAX.format(historyInfo.getProcessStartDate())) 335 .append("\n"); 336 buf.append(msg("process-end-date")).append(" = ").append( 337 DATE_FORMAT_MAX.format(historyInfo.getProcessEndDate())) 338 .append("\n"); 339 buf.append(msg("checksum-expected")).append(" = ").append( 340 historyInfo.getChecksumExpected()).append("\n"); 341 buf.append(msg("checksum-calculated")).append(" = ").append( 342 historyInfo.getChecksumCalculated()).append("\n"); 343 buf.append(msg("result")).append(" = ").append( 344 historyInfo.getResult()).append("\n"); 345 buf.append("----------------------------------------------- \n\n"); 346 osw.write(buf.toString()); 347 } 348 } 349 350 361 private void printDSpaceInfoRecords(List bitstreams, OutputStreamWriter osw) 362 throws IOException  363 { 364 Iterator iter = bitstreams.iterator(); 365 366 while (iter.hasNext()) 367 { 368 DSpaceBitstreamInfo info = (DSpaceBitstreamInfo) iter.next(); 369 StringBuffer buf = new StringBuffer (1000); 370 buf.append("------------------------------------------------ \n"); 371 buf.append(msg("format-id")).append(" = ").append( 372 info.getBitstreamFormatId()).append("\n"); 373 buf.append(msg("deleted")).append(" = ").append(info.getDeleted()) 374 .append("\n"); 375 buf.append(msg("bitstream-id")).append(" = ").append( 376 info.getBitstreamId()).append("\n"); 377 buf.append(msg("checksum-algorithm")).append(" = ").append( 378 info.getChecksumAlgorithm()).append("\n"); 379 buf.append(msg("internal-id")).append(" = ").append( 380 info.getInternalId()).append("\n"); 381 buf.append(msg("name")).append(" = ").append(info.getName()) 382 .append("\n"); 383 buf.append(msg("size")).append(" = ").append(info.getSize()) 384 .append("\n"); 385 buf.append(msg("source")).append(" = ").append(info.getSource()) 386 .append("\n"); 387 buf.append(msg("checksum")).append(" = ").append( 388 info.getStoredChecksum()).append("\n"); 389 buf.append(msg("store-number")).append(" = ").append( 390 info.getStoreNumber()).append("\n"); 391 buf.append(msg("description")).append(" = ").append( 392 info.getUserFormatDescription()).append("\n"); 393 buf.append("----------------------------------------------- \n\n"); 394 osw.write(buf.toString()); 395 } 396 } 397 } 398 | Popular Tags |