def self.read_one(reader)
return nil unless reader.forward
object = HostDevice.new
object.href = reader.get_attribute('href')
value = reader.get_attribute('capability')
object.capability = value if not value.nil?
value = reader.get_attribute('comment')
object.comment = value if not value.nil?
value = reader.get_attribute('description')
object.description = value if not value.nil?
value = reader.get_attribute('id')
object.id = value if not value.nil?
value = reader.get_attribute('iommu_group')
object.iommu_group = value if not value.nil?
value = reader.get_attribute('name')
object.name = value if not value.nil?
value = reader.get_attribute('placeholder')
object.placeholder = value if not value.nil?
value = reader.get_attribute('virtual_functions')
object.virtual_functions = value if not value.nil?
empty = reader.empty_element?
reader.read
return object if empty
while reader.forward do
case reader.node_name
when 'capability'
object.capability = Reader.read_string(reader)
when 'comment'
object.comment = Reader.read_string(reader)
when 'description'
object.description = Reader.read_string(reader)
when 'id'
object.id = Reader.read_string(reader)
when 'iommu_group'
object.iommu_group = Reader.read_integer(reader)
when 'name'
object.name = Reader.read_string(reader)
when 'physical_function'
object.physical_function = HostDeviceReader.read_one(reader)
when 'placeholder'
object.placeholder = Reader.read_boolean(reader)
when 'product'
object.product = ProductReader.read_one(reader)
when 'vendor'
object.vendor = VendorReader.read_one(reader)
when 'virtual_functions'
object.virtual_functions = Reader.read_integer(reader)
when 'host'
object.host = HostReader.read_one(reader)
when 'parent_device'
object.parent_device = HostDeviceReader.read_one(reader)
when 'vm'
object.vm = VmReader.read_one(reader)
else
reader.next_element
end
end
reader.read
return object
end