Debug (JEL API)
Date: 2015-05-14

gnu.jel.debug

## Class Debug

- java.lang.Object
- - gnu.jel.debug.Debug

-     public final class Debug
      extends java.lang.Object

  This class used for incorporating internal checks and assertions into the code.
  None of these functions does anything if Debug.enabled is false.
  If you really want to throw ALL debug messages from the final, compiler generated, code -- wrap calls to Debug methods into the `if` statement, checking `Debug.enabled` constant. As shown in the example :

       import cz.fzu.metlov.jel.*;
       ..... BLA BLA BLA ...
       if (Debug.enabled) {
        Debug.println("I want this message to disappear in the optimized version");
        Debug.check(foo==superTimeConsumingFunction(bar),
       "I do not want to evaluate superTimeConsumingFunction(), when optimized.");
       };

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static boolean` | `enabled` Determines if debugging is enabled in current compilation.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Debug()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `check(boolean condition)` Checks for the condition.
    `static void` | `check(boolean condition, java.lang.String message)` Checks for the condition.
    `static void` | `println(java.lang.String message)` Prints a line of the debug output.
    `static void` | `reportThrowable(java.lang.Throwable t)` Reports an exception, which should not occur(i.e.
    `static void` | `reportThrowable(java.lang.Throwable t, java.lang.String message)` Reports an exception, which should not occur(i.e.

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### enabled

          public static final boolean enabled

      Determines if debugging is enabled in current compilation.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Debug

          public Debug()

  - ### Method Detail

    - #### println

          public static final void println(java.lang.String message)

      Prints a line of the debug output. The resulting line goes to System.err and is prefixed by "[DEBUG] ".
      Parameters:
        `message` - message to print.

    - #### check

          public static final void check(boolean condition,
                   java.lang.String message)

      Checks for the condition. If condition is false this function prints a given message to the System.err along with the stack trace.
      Parameters:
        `condition` - is the condition to check.
        `message` - is the message to print if condition is false.

    - #### check

          public static final void check(boolean condition)

      Checks for the condition. If condition is false this function prints a "Assertion failed." to the System.err along with the stack trace.
      Parameters:
        `condition` - is the condition to check.

    - #### reportThrowable

          public static final void reportThrowable(java.lang.Throwable t,
                             java.lang.String message)

      Reports an exception, which should not occur(i.e. handled improperly).
      Parameters:
        `t` - is what was thrown.
        `message` - is algorithm specific message.

    - #### reportThrowable

          public static final void reportThrowable(java.lang.Throwable t)

      Reports an exception, which should not occur(i.e. handled improperly).
      Parameters:
        `t` - is what was thrown.

Copyright © 1998-2015 Konstantin L. Metlov All Rights Reserved.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the JEL manual.