_nestedCondition(condition) {
        //parsing AND & OR relations
        if (condition.hasOwnProperty('relation')) {
            this._level = this._level + 1;
            this._semi_parsed_conditions['l' + this._level] = {
                relation: condition.relation,
                level: this._level
            };
            //setting maximum amount of query depth.
            this._max_level = this._level;
            //recurring through inner conditions
            this._parseConditions(condition.cond);
            this._level = this._level - 1;
        }//parsing single queries
        else if (typeof condition[0] == 'string') {
            //inner conditions with no relation attribute
            this._readStatement(condition);
        }//parsing inner queries .cond
        else {
            condition.forEach(cond => {
                this._parseConditions(cond);
            });
        }
    }
/**
     * parsing through nested Condition
     * @param {array} condition 
     */
parsing through nested Condition
@param {array} condition
parsing through nested Condition @param { array } condition
_nestedCondition(condition) {
        if (condition.hasOwnProperty('relation')) {
            this._level = this._level + 1;
            this._semi_parsed_conditions['l' + this._level] = {
                relation: condition.relation,
                level: this._level
            };
            this._max_level = this._level;
            this._parseConditions(condition.cond);
            this._level = this._level - 1;
        }
        else if (typeof condition[0] == 'string') {
            this._readStatement(condition);
        }
        else {
            condition.forEach(cond => {
                this._parseConditions(cond);
            });
        }
    }
_nestedCondition ( condition ) { if ( condition . hasOwnProperty ( 'relation' ) ) { this . _level = this . _level + 1 ; this . _semi_parsed_conditions [ 'l' + this . _level ] = { relation : condition . relation , level : this . _level } ; this . _max_level = this . _level ; this . _parseConditions ( condition . cond ) ; this . _level = this . _level - 1 ; } else if ( typeof condition [ 0 ] == 'string' ) { this . _readStatement ( condition ) ; } else { condition . forEach ( cond => { this . _parseConditions ( cond ) ; } ) ; } }
parsing through nested Condition
 @param {array} condition
parsing through nested Condition @param { array } condition
//parsing AND & OR relations //setting maximum amount of query depth. //recurring through inner conditions //parsing single queries //inner conditions with no relation attribute //parsing inner queries .cond