def self.read_one(reader)
return nil unless reader.forward
object = Agent.new
object.href = reader.get_attribute('href')
value = reader.get_attribute('address')
object.address = value if not value.nil?
value = reader.get_attribute('comment')
object.comment = value if not value.nil?
value = reader.get_attribute('concurrent')
object.concurrent = value if not value.nil?
value = reader.get_attribute('description')
object.description = value if not value.nil?
value = reader.get_attribute('encrypt_options')
object.encrypt_options = value if not value.nil?
value = reader.get_attribute('id')
object.id = value if not value.nil?
value = reader.get_attribute('name')
object.name = value if not value.nil?
value = reader.get_attribute('order')
object.order = value if not value.nil?
value = reader.get_attribute('password')
object.password = value if not value.nil?
value = reader.get_attribute('port')
object.port = value if not value.nil?
value = reader.get_attribute('type')
object.type = value if not value.nil?
value = reader.get_attribute('username')
object.username = value if not value.nil?
empty = reader.empty_element?
reader.read
return object if empty
while reader.forward do
case reader.node_name
when 'address'
object.address = Reader.read_string(reader)
when 'comment'
object.comment = Reader.read_string(reader)
when 'concurrent'
object.concurrent = Reader.read_boolean(reader)
when 'description'
object.description = Reader.read_string(reader)
when 'encrypt_options'
object.encrypt_options = Reader.read_boolean(reader)
when 'id'
object.id = Reader.read_string(reader)
when 'name'
object.name = Reader.read_string(reader)
when 'options'
object.options = OptionReader.read_many(reader)
when 'order'
object.order = Reader.read_integer(reader)
when 'password'
object.password = Reader.read_string(reader)
when 'port'
object.port = Reader.read_integer(reader)
when 'type'
object.type = Reader.read_string(reader)
when 'username'
object.username = Reader.read_string(reader)
when 'host'
object.host = HostReader.read_one(reader)
else
reader.next_element
end
end
reader.read
return object
end