code: function (hashObject) {
              var prop, re = this._nonEncodableSepRegExp;
              for (var key in hashObject) {
                  if (hashObject.hasOwnProperty(key)) {
                      if (re && key.match(re)) {
                          this.$logError(this.INVALID_HASHOBJECT_KEY, [key, this._nonEncodableSeparators.join("")]);
                          return false;
                      } else {
                          prop = hashObject[key];
                          if (this._typeUtil.isString(prop)) {
                              if (re && prop.match(re)) {
                                  this.$logError(this.INVALID_HASHOBJECT_VALUE, [prop, key,
                                          this._nonEncodableSeparators.join("")]);
                                  return false;
                              }
                          } else {
                              this.$logError(this.INVALID_HASHOBJECT_TYPE, key);
                              return false;
                          }
                      }
                  }
              }
              return true;
          }
docs: Checks that the values contained in the hashObject are strings and that both the keys and the values do not
  contain any of the characters specified as separators that cannot be encoded
  @param {Object} hashObject
  @return {Boolean} true if the hashObject is valid, false otherwise
  @protected