package jeffaschenk.commons.frameworks.cnxidx.utility.ldap; /** * Java Class for accumulating Status and Statistics among various * JNDI Functions and Class. * * @author jeff.schenk * @version 1.0 $Revision * Developed 2001 */ public class idxLapTime { private long start = 0; // Start Time in Milliseconds. private long end = 0; // End Time in Milliseconds. private long duration = 0; // Duration Time in Milliseconds. private long laps = 0; // Number of Laps. private long average = 0; // Avg Duration Time in Milliseconds. private long minimum = 0; // Min Duration Time in Milliseconds. private long maximum = 0; // Max Duration Time in Milliseconds. private long total = 0; // Tot Duration Time in Milliseconds. /** * Provides Common Constructor for Calculating Elapsed Time. * Does nothing. */ public idxLapTime() { } // End of idxStatus Constructor. /** * Set Current Time as Start Time. */ public void Start() { start = System.currentTimeMillis(); end = start; duration = 0; laps++; } // End of Start Method. /** * Set Current Time as End Time. */ public void Stop() { end = System.currentTimeMillis(); duration = (end - start); total = total + duration; if ((duration < minimum) || (laps <= 1)) { minimum = duration; } if ((duration > maximum) || (laps <= 1)) { maximum = duration; } average = total / laps; } // End of Stop Method. /** * Reset all Counters. */ public void Reset() { start = 0; end = 0; duration = 0; laps = 0; average = 0; minimum = 0; maximum = 0; total = 0; } // End of Reset Method. /** * Get current Duration. */ public long getCurrentDuration() { return (duration); } // End of getCurrentDuration Method. /** * Obtain data in String form. * * @return String. */ public String toString() { return ("Min: " + getElapsedtoString(minimum) + ", " + "Max: " + getElapsedtoString(maximum) + ", " + "Avg: " + getElapsedtoString(average) + " for " + laps + " Iterations."); } /** * Get Elapsed Timing in String Form. * * @return String of Duration. */ public String getElapsedtoString() { return (getElapsedtoString(duration)); } // End of getElaspedtoString with no Parameters. /** * Get Elapsed Timing in String Form. * * @param _duration A Duration, in milliseconds. * @return String of Duration. */ public String getElapsedtoString(long _duration) { long hours; long minutes; long seconds; // ************************************** // First Convert Duration into Seconds. long timeInSeconds = _duration / 1000; if (timeInSeconds <= 0) { return (_duration + " ms"); } // ***************************** // Now Convert the seconds. hours = timeInSeconds / 3600; timeInSeconds = timeInSeconds - (hours * 3600); minutes = timeInSeconds / 60; timeInSeconds = timeInSeconds - (minutes * 60); seconds = timeInSeconds; if (hours > 0) { return (hours + " hour(s), " + minutes + " minute(s), " + seconds + " second(s)"); } else if (minutes > 0) { return (minutes + " minute(s), " + seconds + " second(s)"); } else { return (seconds + " second(s)"); } } // End of getElapsedtoString Method Class. } ///:~ End of idxLapTime Class.