def address(working_address = nil)
      working_address &&= working_address.deep_copy

      working_address ||= if parent.respond_to?(:base)
        address = Address.new
        address.path_fragments << parent.base
        address
      else
        parent.address.deep_copy
      end

      working_address.path_fragments << path.dup

      # Install path, query, and header parameters in the Address. These
      # may override existing parameters with the same names, but if
      # you've got a WADL application that works that way, you should
      # have bound parameters to values earlier.
      new_path_fragments = []
      embedded_param_names = Set.new(Address.embedded_param_names(path))

      params.each { |param|
        name = param.name

        if embedded_param_names.include?(name)
          working_address.path_params[name] = param
        else
          if param.style == 'query'
            working_address.query_params[name] = param
          elsif param.style == 'header'
            working_address.header_params[name] = param
          else
            new_path_fragments << param
            working_address.path_params[name] = param
          end
        end
      }

      working_address.path_fragments << new_path_fragments unless new_path_fragments.empty?

      working_address
    end
def address(working_address = nil)
      working_address &&= working_address.deep_copy

      working_address ||= if parent.respond_to?(:base)
        address = Address.new
        address.path_fragments << parent.base
        address
      else
        parent.address.deep_copy
      end

      working_address.path_fragments << path.dup

      # Install path, query, and header parameters in the Address. These
      # may override existing parameters with the same names, but if
      # you've got a WADL application that works that way, you should
      # have bound parameters to values earlier.
      new_path_fragments = []
      embedded_param_names = Set.new(Address.embedded_param_names(path))

      params.each { |param|
        name = param.name

        if embedded_param_names.include?(name)
          working_address.path_params[name] = param
        else
          if param.style == 'query'
            working_address.query_params[name] = param
          elsif param.style == 'header'
            working_address.header_params[name] = param
          else
            new_path_fragments << param
            working_address.path_params[name] = param
          end
        end
      }

      working_address.path_fragments << new_path_fragments unless new_path_fragments.empty?

      working_address
    end
Returns an Address object refering to this resource