whole_func_string: function(parameters, inheritedParameters, path_) {
      var _parameters = {
        'path': [],
        'query': [],
        'body': [],
        'header':[]
      }
      self = this
      var descriptor = function(parameter, inherited) {
        return {
            name: parameter.name,
            description: parameter.description,
            location: parameter.location,
            schema: self._removeNoDocumentProperties(parameter.schema),
            example: parameter.example,
            required: parameter.required,
            default: parameter.default,
            inherited: inherited,
        }
      }
      if (!_.isUndefined(inheritedParameters)) {
        for (var parameter in inheritedParameters) {
          if(this._includeUndocumented || !inheritedParameters[parameter].noDocument) {
            _parameters[inheritedParameters[parameter].location].push(
              descriptor(inheritedParameters[parameter], true))
          }
        }
      }
      for (var parameter in parameters) {
        if(this._includeUndocumented || !parameters[parameter].noDocument) {
          _parameters[parameters[parameter].location].push(descriptor(parameters[parameter], false))
        }
      }
      var existingPathParams = _.map(_parameters.path, function(val) { return val.name })
      _parameters.path = _.concat(_parameters.path, this._getPathParameters(path_, existingPathParams))
      for (var location in _parameters) {
        if (_parameters[location].length == 0) {
          delete _parameters[location]
        }
      }
      return _parameters
    }
func_code_string: function(parameters, inheritedParameters, path_) {
      var _parameters = {
        'path': [],
        'query': [],
        'body': [],
        'header':[]
      }
      self = this
      var descriptor = function(parameter, inherited) {
        return {
            name: parameter.name,
            description: parameter.description,
            location: parameter.location,
            schema: self._removeNoDocumentProperties(parameter.schema),
            example: parameter.example,
            required: parameter.required,
            default: parameter.default,
            inherited: inherited,
        }
      }
      if (!_.isUndefined(inheritedParameters)) {
        for (var parameter in inheritedParameters) {
          if(this._includeUndocumented || !inheritedParameters[parameter].noDocument) {
            _parameters[inheritedParameters[parameter].location].push(
              descriptor(inheritedParameters[parameter], true))
          }
        }
      }
      for (var parameter in parameters) {
        if(this._includeUndocumented || !parameters[parameter].noDocument) {
          _parameters[parameters[parameter].location].push(descriptor(parameters[parameter], false))
        }
      }
      var existingPathParams = _.map(_parameters.path, function(val) { return val.name })
      _parameters.path = _.concat(_parameters.path, this._getPathParameters(path_, existingPathParams))
      for (var location in _parameters) {
        if (_parameters[location].length == 0) {
          delete _parameters[location]
        }
      }
      return _parameters
    }
func_documentation_string: ********************************************************************
  _generateParameterDescriptors
  
  XXX: get rid of path_ parameter... this should be done somewhere else
  
  @param {object} parameters
  @param {object} inheritedParameters
  @param {string} path_
  @returns {object}