01: /**
02: *
03: */package com.dappit.Dapper.parser.test.util;
04:
05: import java.util.logging.Logger;
06:
07: /**
08: * @author Ohad Serfaty
09: *
10: * A testing utility for showing the progress in percents to stdout/err.
11: *
12: */
13: public class ProgressLogger {
14:
15: long percent = 0;
16: long totalCount = 0;
17: long currentCount = 0;
18: private final Logger logger;
19: private String logPrefix = "";
20:
21: public ProgressLogger(Logger logger, long totalCount) {
22: this .logger = logger;
23: this .totalCount = totalCount;
24: }
25:
26: public ProgressLogger(long totalCount) {
27: this .logger = null;
28: this .totalCount = totalCount;
29: }
30:
31: public void incrementCount(long countsToIncrement) {
32: currentCount = currentCount + countsToIncrement;
33: long newPrecent = (long) (Math.floor(100.0
34: * (double) currentCount / (double) totalCount));
35:
36: if (newPrecent > percent) {
37: percent = newPrecent;
38: if (logger != null)
39: logger.info(logPrefix + percent + "%.. ");
40: else
41: System.out.print(logPrefix + percent + "%.. ");
42: if (percent % 10 == 0 && logger == null)
43: System.out.println();
44: }
45: }
46:
47: public void incrementCount() {
48: incrementCount(1);
49: }
50:
51: public void setLogPrefix(String logPrefix) {
52: this.logPrefix = logPrefix;
53: }
54: }
|