Project Wonder 5.0

er.extensions.foundation
Class ERXStopWatch

java.lang.Object
  extended by er.extensions.foundation.ERXStopWatch

public class ERXStopWatch
extends java.lang.Object

StopWatch provides a convenient API for timings.

To start the watch, call start(). At this point you can:

It is intended that the output methods toString() and getTime() should only be called after stop, split or suspend, however a suitable result will be returned at other points.

NOTE: As from v2.1, the methods protect against inappropriate calls. Thus you cannot now call stop before start, resume before suspend or unsplit before split.

1. split(), suspend(), or stop() cannot be invoked twice
2. unsplit() may only be called if the watch has been split()
3. resume() may only be called if the watch has been suspend()
4. start() cannot be called twice without calling reset()

This class is not thread-safe

Since:
2.0
Version:
$Id: StopWatch.java 959577 2010-07-01 09:48:23Z sebb $
Author:
Apache Software Foundation, kieran (Sep 1, 2010) - borrowed apache lang StopWatch for ERExtensions and changed to our own time duration formatter to eliminate other commons lang dependencies

Constructor Summary
ERXStopWatch()
           Constructor.
 
Method Summary
 ERXTimeDurationFormatter durationFormat()
           
 long getNanoTime()
           Get the time on the stopwatch in nanoseconds.
 long getSplitNanoTime()
           Get the split time on the stopwatch in nanoseconds.
 long getSplitTime()
           Get the split time on the stopwatch.
 long getStartTime()
          Returns the time this stopwatch was started.
 long getTime()
           Get the time on the stopwatch.
 void reset()
           Resets the stopwatch.
 void resume()
           Resume the stopwatch after a suspend.
 void split()
           Split the time.
 void start()
           Start the stopwatch.
 void stop()
           Stop the stopwatch.
 void suspend()
           Suspend the stopwatch for later resumption.
 java.lang.String toSplitString()
           
 java.lang.String toString()
          Our modified implementation since apache commons lang jar not allowed in ERJars.
 void unsplit()
           Remove a split.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ERXStopWatch

public ERXStopWatch()

Constructor.

Method Detail

start

public void start()

Start the stopwatch.

This method starts a new timing session, clearing any previous values.

Throws:
java.lang.IllegalStateException - if the StopWatch is already running.

stop

public void stop()

Stop the stopwatch.

This method ends a new timing session, allowing the time to be retrieved.

Throws:
java.lang.IllegalStateException - if the StopWatch is not running.

reset

public void reset()

Resets the stopwatch. Stops it if need be.

This method clears the internal values to allow the object to be reused.


split

public void split()

Split the time.

This method sets the stop time of the watch to allow a time to be extracted. The start time is unaffected, enabling unsplit() to continue the timing from the original start point.

Throws:
java.lang.IllegalStateException - if the StopWatch is not running.

unsplit

public void unsplit()

Remove a split.

This method clears the stop time. The start time is unaffected, enabling timing from the original start point to continue.

Throws:
java.lang.IllegalStateException - if the StopWatch has not been split.

suspend

public void suspend()

Suspend the stopwatch for later resumption.

This method suspends the watch until it is resumed. The watch will not include time between the suspend and resume calls in the total time.

Throws:
java.lang.IllegalStateException - if the StopWatch is not currently running.

resume

public void resume()

Resume the stopwatch after a suspend.

This method resumes the watch after it was suspended. The watch will not include time between the suspend and resume calls in the total time.

Throws:
java.lang.IllegalStateException - if the StopWatch has not been suspended.

getTime

public long getTime()

Get the time on the stopwatch.

This is either the time between the start and the moment this method is called, or the amount of time between start and stop.

Returns:
the time in milliseconds

getNanoTime

public long getNanoTime()

Get the time on the stopwatch in nanoseconds.

This is either the time between the start and the moment this method is called, or the amount of time between start and stop.

Returns:
the time in nanoseconds
Since:
3.0

getSplitTime

public long getSplitTime()

Get the split time on the stopwatch.

This is the time between start and latest split.

Returns:
the split time in milliseconds
Throws:
java.lang.IllegalStateException - if the StopWatch has not yet been split.
Since:
2.1

getSplitNanoTime

public long getSplitNanoTime()

Get the split time on the stopwatch in nanoseconds.

This is the time between start and latest split.

Returns:
the split time in nanoseconds
Throws:
java.lang.IllegalStateException - if the StopWatch has not yet been split.
Since:
3.0

getStartTime

public long getStartTime()
Returns the time this stopwatch was started.

Returns:
the time this stopwatch was started
Throws:
java.lang.IllegalStateException - if this StopWatch has not been started
Since:
2.4

toString

public java.lang.String toString()
Our modified implementation since apache commons lang jar not allowed in ERJars.

Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

toSplitString

public java.lang.String toSplitString()

durationFormat

public ERXTimeDurationFormatter durationFormat()
Returns:
the formatter for the elapsed time

Last updated: Tue, Feb 21, 2017 • 05:45 PM CET

Copyright © 2002 – 2007 Project Wonder.