package util; /** * Debug management class. * * <p>You can use calls to {@link #print Debug.print} for any debug message you want to print * in your program.</p> * * @author Steffen Zschaler * @version 1.0 * @since v1.0 */ public class Debug extends Object { /** * The current debug level. */ private static int s_nDebugLevel = 10; /** * Show system messages (level == -1)? */ private static boolean s_fSysMsg = false; /** * Set the maximum debug level. * * <p>When printing messages with {@link #print}, only messages with a debug level less or * equal the maximum debug level will be printed.</p> * * @param nLevel the maximum debug level. Defaults to 10. * * @return the former maximum debug level. */ public static synchronized int setMaxDebugLevel (int nLevel) { int nOld = s_nDebugLevel; s_nDebugLevel = nLevel; return nOld; } /** * Switch on printing of framework internal debug messages. */ public static void traceSystemMessages() { traceSystemMessages (true); } /** * Switch off printing of framework internal debug messages. */ public static void untraceSystemMessages() { traceSystemMessages (false); } /** * Switch printing of framework internal debug messages. * * @param fSwitch if true, framework internal debug messages will henceforward be printed. */ public static synchronized void traceSystemMessages (boolean fSwitch) { s_fSysMsg = fSwitch; } /** * Print a message to STDERR. * * <p>Prints <code>s</code> to {@link java.lang.System#err}, if <code>nLevel</code> is less * or equal the maximum debug level.</p> * * @param s the debug message. * @param nLevel the message's debug level. Must be greater or equal zero. */ public static synchronized void print (String s, int nLevel) { if (((nLevel == -1) && (s_fSysMsg)) || ((nLevel >=0) && (nLevel <= s_nDebugLevel))) System.err.println (s); } }