# File lib/data_objects/uri.rb, line 51
    def initialize(*args)
      if (component = args.first).kind_of?(Hash)
        @scheme     = component[:scheme]
        @subscheme  = component[:subscheme]
        @user       = component[:user]
        @password   = component[:password]
        @host       = component[:host]
        @port       = component[:port]
        @path       = component[:path]
        @query      = component[:query]
        @fragment   = component[:fragment]
        @relative   = component[:relative]
      elsif args.size > 1
        warn "DataObjects::URI.new with arguments is deprecated, use a Hash of URI components (#{caller.first})"
        @scheme, @user, @password, @host, @port, @path, @query, @fragment = *args
      else
        raise ArgumentError, "argument should be a Hash of URI components, was: #{args.inspect}"
      end
    end