/*
 * Copyright © 2012, 2013 Pedro Agullo Soliveres.
 * 
 * This file is part of Log4js-ext.
 *
 * Log4js-ext is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License.
 *
 * Commercial use is permitted to the extent that the code/component(s)
 * do NOT become part of another Open Source or Commercially developed
 * licensed development library or toolkit without explicit permission.
 *
 * Log4js-ext is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with Log4js-ext.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * This software uses the ExtJs library (http://extjs.com), which is 
 * distributed under the GPL v3 license (see http://extjs.com/license).
 */

(function() {
   "use strict"; //$NON-NLS-1$
   
   /**
    * @private
    * 
    * Provides assertion support
    */
   Ext.define('Sm.log.util.Assert', { //$NON-NLS-1$
      
      uses : [
         'Sm.log.util.Debug' //$NON-NLS-1$
      ],

      singleton : true,
      
      ON : true,
      
      assert : function(booleanExpression, errorMsg) {
         if( Sm.log.util.Assert.ON !== true ) {
            return;
         }
         var error;
         if( !booleanExpression ) {
            error = 'AssertionError'; //$NON-NLS-1$
            /*global console:true*/
            if( errorMsg) {
               error += ': ' + errorMsg;
            }
            console.log( error ); //$NON-NLS-1$
            /*global console:false*/

            Sm.log.util.Debug.abort(error);
         }
      }
   });

}());