Assertion
Date: 2014-06-04

org.gcube.vremanagement.resourcebroker.utils.assertions

## Class Assertion<T extends java.lang.Throwable>

- java.lang.Object
- - org.gcube.vremanagement.resourcebroker.utils.assertions.Assertion<T>

-     public class Assertion<T extends java.lang.Throwable>
      extends java.lang.Object

  General purpose assertion handler. Assertion can be generalized to check a boolean expression and to raise an exception in correspondence to a failure happening during checking.

       Example:

           Assertion<TheExceptionType> assertion = new Assertion<ParamException> ();
           assertion.validate (param != null, new TheExceptionType("invalid parameter null"));

       or, in a more compact form:
          // The exception to throw in case of failure
          // during the evaluation of the expected condition
          new Assertion<TheExceptionType>().validate(
              i>5,                                                     // The expected boolean condition
              new TheExceptionType("Parameter must be greater than 5")); //The error message

  Author:
    Daniele Strollo (ISTI-CNR)

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Assertion()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `validate(boolean assertion, T exc)` Makes an assertion and if the expression evaluation fails, throws an exception of type T.

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

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

- - ### Constructor Detail

    - #### Assertion

          public Assertion()

  - ### Method Detail

    - #### validate

          public final void validate(boolean assertion,
                      T exc)
                              throws T extends java.lang.Throwable

      Makes an assertion and if the expression evaluation fails, throws an exception of type T.

           Example:
                  new Assertion<MyException>().validate(whatExpected, new MyException("guard failed"));

      Parameters:
        `assertion` - the boolean expression to evaluate
        `exc` - the exception to throw if the condition does not hold
      Throws:
        `T` - the exception extending `Throwable`
        `T extends java.lang.Throwable`