package net.sf.jlinkgrammar; import java.util.Date; /** * TODO add javadoc * */ public class Resources { private long startTime; private long lastTime; private long cumulativeTime; Resources() { startTime = lastTime = new Date().getTime(); cumulativeTime = 0; } /** * Reset start time for a new parsing run. */ void reset() { lastTime = startTime = new Date().getTime(); } /** * Print out the elapsed time since this was last called. * @param opts control verbosity and output destination * @param s Label to print */ void printTime(ParseOptions opts, String s) { /* */ long currentTime = new Date().getTime(); if (opts.verbosity > 1) { opts.out.print("++++"); opts.left_print_string(s, " "); opts.out.println("" + ((currentTime - lastTime) / 1000.0) + " seconds"); } lastTime = currentTime; } /** * Print out time since last reset and total cumulative time. * @param opts control verbosity and output destination */ void printTotalTime(ParseOptions opts) { /* */ long currentTime = new Date().getTime(); cumulativeTime += (currentTime - startTime); if (opts.verbosity > 0) { opts.out.print("++++"); opts.left_print_string("Time", " "); opts.out.println( "" + ((currentTime - startTime) / 1000.0) + " seconds (" + (cumulativeTime / 1000.0) + " total)"); } startTime = lastTime = currentTime; } }