View Javadoc

1   package org.naftulin.timespan;
2   
3   
4   import org.naftulin.logwrapper.LogAdapter;
5   import org.naftulin.logwrapper.LogLevelAdaptor;
6   
7   /***
8    * Reports the time passed between starting and finishing an action. 
9    * Could be extended later to gather statiscics for starting/stopping
10   * events with the same name.<br>
11   * Usage:
12   * <pre>
13   * TimeSpan readEvent = new TimeSpan("reading values from db for xyz");
14   * readEvent.start();
15   * .. call to db ..
16   * readEvent.stop();
17   * readEvent.log(logger, LogLevelAdaptor.DEBUG);
18   * </pre>
19   * @author henry naftulin
20   * @version 1.0
21   */
22  public class TimeSpan {
23  	private long startTime;
24  	private long endTime;
25  	private final String name;
26  	
27  	/*** 
28  	 * Creates times span class with a particular name for the task
29  	 * @param name name of the task
30  	 */
31  	public TimeSpan(String name) { this.name = name; }
32  	/***
33  	 * Records start time.
34  	 */
35  	public void start() { startTime = System.currentTimeMillis(); }
36  	/***
37  	 * Records stop time.
38  	 */
39  	public void stop() { endTime = System.currentTimeMillis() ; }
40  	/***
41  	 * Prints a message: 'It took &lt; timedif &gt; miliseconds to finish the task &lt; name &gt;' to log
42  	 * @param log logger to print the message to
43  	 * @param level log level
44  	 */
45  	public void log(LogAdapter log, LogLevelAdaptor level) {
46  		StringBuffer message = new StringBuffer(30);
47  		message.append("It took ").append(endTime - startTime).append(" miliseconds to finish task ").append(name);
48  		log.log(level, message.toString());
49  	}
50  }