# File lib/uuidtools.rb, line 116
  def initialize(time_low, time_mid, time_hi_and_version,
      clock_seq_hi_and_reserved, clock_seq_low, nodes)
    unless time_low >= 0 && time_low < 4294967296
      raise ArgumentError,
        "Expected unsigned 32-bit number for time_low, got #{time_low}."
    end
    unless time_mid >= 0 && time_mid < 65536
      raise ArgumentError,
        "Expected unsigned 16-bit number for time_mid, got #{time_mid}."
    end
    unless time_hi_and_version >= 0 && time_hi_and_version < 65536
      raise ArgumentError,
        "Expected unsigned 16-bit number for time_hi_and_version, " +
        "got #{time_hi_and_version}."
    end
    unless clock_seq_hi_and_reserved >= 0 && clock_seq_hi_and_reserved < 256
      raise ArgumentError,
        "Expected unsigned 8-bit number for clock_seq_hi_and_reserved, " +
        "got #{clock_seq_hi_and_reserved}."
    end
    unless clock_seq_low >= 0 && clock_seq_low < 256
      raise ArgumentError,
        "Expected unsigned 8-bit number for clock_seq_low, " +
        "got #{clock_seq_low}."
    end
    unless nodes.respond_to? :size
      raise ArgumentError,
        "Expected nodes to respond to :size."
    end  
    unless nodes.size == 6
      raise ArgumentError,
        "Expected nodes to have size of 6."
    end
    for node in nodes
      unless node >= 0 && node < 256
        raise ArgumentError,
          "Expected unsigned 8-bit number for each node, " +
          "got #{node}."
      end
    end
    @time_low = time_low
    @time_mid = time_mid
    @time_hi_and_version = time_hi_and_version
    @clock_seq_hi_and_reserved = clock_seq_hi_and_reserved
    @clock_seq_low = clock_seq_low
    @nodes = nodes
  end