parseWhere(conditions) {
        this._parseConditions(conditions);
        let final_query_conitions = '';
        if (this._semi_parsed_conditions.hasOwnProperty('cond_str')) {
            final_query_conitions = this._semi_parsed_conditions.cond_str;
        } else {
            let condition_string = this._arrayToString(this._semi_parsed_conditions);
            let level_template = this._nestLevels();
            final_query_conitions = level_template;

            for (let lvl = 1; lvl <= this._max_level; lvl++) {
                final_query_conitions = final_query_conitions.replace('#' + lvl + '#', condition_string['l' + lvl]);
            }
        }

        //reseting values for next query
        this._semi_parsed_conditions = {};
        this._level = 0;
        this._max_level = 1;

        return final_query_conitions;
    }
/**
     * high-level method that handles the transformation of the conditions 
     * @param {array} conditions 
     */
high-level method that handles the transformation of the conditions
@param {array} conditions
high - level method that handles the transformation of the conditions @param { array } conditions
parseWhere(conditions) {
        this._parseConditions(conditions);
        let final_query_conitions = '';
        if (this._semi_parsed_conditions.hasOwnProperty('cond_str')) {
            final_query_conitions = this._semi_parsed_conditions.cond_str;
        } else {
            let condition_string = this._arrayToString(this._semi_parsed_conditions);
            let level_template = this._nestLevels();
            final_query_conitions = level_template;
            for (let lvl = 1; lvl <= this._max_level; lvl++) {
                final_query_conitions = final_query_conitions.replace('#' + lvl + '#', condition_string['l' + lvl]);
            }
        }
        this._semi_parsed_conditions = {};
        this._level = 0;
        this._max_level = 1;
        return final_query_conitions;
    }
parseWhere ( conditions ) { this . _parseConditions ( conditions ) ; let final_query_conitions = '' ; if ( this . _semi_parsed_conditions . hasOwnProperty ( 'cond_str' ) ) { final_query_conitions = this . _semi_parsed_conditions . cond_str ; } else { let condition_string = this . _arrayToString ( this . _semi_parsed_conditions ) ; let level_template = this . _nestLevels ( ) ; final_query_conitions = level_template ; for ( let lvl = 1 ; lvl <= this . _max_level ; lvl ++ ) { final_query_conitions = final_query_conitions . replace ( '#' + lvl + '#' , condition_string [ 'l' + lvl ] ) ; } } this . _semi_parsed_conditions = { } ; this . _level = 0 ; this . _max_level = 1 ; return final_query_conitions ; }
high-level method that handles the transformation of the conditions
 @param {array} conditions
high - level method that handles the transformation of the conditions @param { array } conditions
//reseting values for next query