Module org.hsqldb
Package org.hsqldb.lib

## Class StopWatch

- java.lang.Object
- - org.hsqldb.lib.StopWatch

-     public class StopWatch
      extends java.lang.Object

  Provides the programatic analog of a physical stop watch.

  The watch can be started, stopped and zeroed and can be queried for elapsed running time. The watch accumulates elapsed time over starts and stops such that only the time actually spent running is recorded. If the watch is zeroed, then the accumulated time is discarded and the watch starts again with zero accumulated time.

  Nanosecond support added by fredt@users

  Since:
    1.7.2
  Author:
    Campbell Burnet (campbell-burnet@users dot sourceforge.net)

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StopWatch()` | Creates, zeros, and starts a new StopWatch
    `StopWatch​(boolean start)` | Creates, zeros, and starts a new StopWatch

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `currentElapsedNanos()` | Retrieves the accumulated nanoseconds this object has spent running since it was last started.
    `java.lang.String` | `currentElapsedNanosToMessage​(java.lang.String prefix)` | Retrieves prefix + " in " + elapsedTime() + " ns."
    `long` | `currentElapsedTime()` | Retrieves the accumulated milliseconds this object has spent running since it was last started.
    `java.lang.String` | `currentElapsedTimeToMessage​(java.lang.String prefix)` | Retrieves prefix + " in " + elapsedTime() + " ms."
    `long` | `elapsedNanos()` | Retrieves the accumulated nanoseconds this object has spent running since it was last zeroed.
    `java.lang.String` | `elapsedNanosToMessage​(java.lang.String prefix)` | Retrieves prefix + " in " + elapsedNanos() + " ns."
    `long` | `elapsedTime()` | Retrieves the accumulated milliseconds this object has spent running since it was last zeroed.
    `java.lang.String` | `elapsedTimeToMessage​(java.lang.String prefix)` | Retrieves prefix + " in " + elapsedTime() + " ms."
    `void` | `mark()` |
    `void` | `start()` | Ensures that this object is in the running state.
    `void` | `stop()` | Ensures that this object is in the stopped state.
    `java.lang.String` | `toString()` | Retrieves the internal state of this object, as a String.
    `void` | `zero()` | Zeros accumulated running time and restarts this object.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### StopWatch

          public StopWatch()

      Creates, zeros, and starts a new StopWatch

    - #### StopWatch

          public StopWatch​(boolean start)

      Creates, zeros, and starts a new StopWatch
      Parameters:
        `start` - boolean

  - ### Method Detail

    - #### elapsedTime

          public long elapsedTime()

      Retrieves the accumulated milliseconds this object has spent running since it was last zeroed.
      Returns:
        the accumulated milliseconds this object has spent running since it was last zeroed.

    - #### elapsedNanos

          public long elapsedNanos()

      Retrieves the accumulated nanoseconds this object has spent running since it was last zeroed.
      Returns:
        the accumulated nanoseconds this object has spent running since it was last zeroed.

    - #### currentElapsedTime

          public long currentElapsedTime()

      Retrieves the accumulated milliseconds this object has spent running since it was last started.
      Returns:
        the accumulated milliseconds this object has spent running since it was last started.

    - #### currentElapsedNanos

          public long currentElapsedNanos()

      Retrieves the accumulated nanoseconds this object has spent running since it was last started.
      Returns:
        the accumulated nanoseconds this object has spent running since it was last started.

    - #### zero

          public void zero()

      Zeros accumulated running time and restarts this object.

    - #### start

          public void start()

      Ensures that this object is in the running state. If this object is not running, then the call has the effect of setting the `startTime` attribute to the current value of System.nanoTime() and setting the `running` attribute to `true`.

    - #### stop

          public void stop()

      Ensures that this object is in the stopped state. If this object is in the running state, then this has the effect of adding to the `total` attribute the elapsed time since the last transition from stopped to running state and sets the `running` attribute to false. If this object is not in the running state, this call has no effect.

    - #### mark

          public void mark()

    - #### elapsedTimeToMessage

          public java.lang.String elapsedTimeToMessage​(java.lang.String prefix)

      Retrieves prefix + " in " + elapsedTime() + " ms."
      Parameters:
        `prefix` - The string to use as a prefix
      Returns:
        prefix + " in " + elapsedTime() + " ms."

    - #### elapsedNanosToMessage

          public java.lang.String elapsedNanosToMessage​(java.lang.String prefix)

      Retrieves prefix + " in " + elapsedNanos() + " ns."
      Parameters:
        `prefix` - The string to use as a prefix
      Returns:
        prefix + " in " + elapsedNanos() + " ns."

    - #### currentElapsedTimeToMessage

          public java.lang.String currentElapsedTimeToMessage​(java.lang.String prefix)

      Retrieves prefix + " in " + elapsedTime() + " ms."
      Parameters:
        `prefix` - The string to use as a prefix
      Returns:
        prefix + " in " + elapsedTime() + " ms."

    - #### currentElapsedNanosToMessage

          public java.lang.String currentElapsedNanosToMessage​(java.lang.String prefix)

      Retrieves prefix + " in " + elapsedTime() + " ns."
      Parameters:
        `prefix` - The string to use as a prefix
      Returns:
        prefix + " in " + elapsedTime() + " ns."

    - #### toString

          public java.lang.String toString()

      Retrieves the internal state of this object, as a String. The retrieved value is:

              super.toString() +
              "[running=" +
              running +
              ", startTime=" +
              startTime +
              ", total=" +
              total + "]";

      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        the state of this object, as a String