def self.read_one(reader)
return nil unless reader.forward
object = OperatingSystem.new
object.href = reader.get_attribute('href')
value = reader.get_attribute('cmdline')
object.cmdline = value if not value.nil?
value = reader.get_attribute('custom_kernel_cmdline')
object.custom_kernel_cmdline = value if not value.nil?
value = reader.get_attribute('initrd')
object.initrd = value if not value.nil?
value = reader.get_attribute('kernel')
object.kernel = value if not value.nil?
value = reader.get_attribute('reported_kernel_cmdline')
object.reported_kernel_cmdline = value if not value.nil?
value = reader.get_attribute('type')
object.type = value if not value.nil?
empty = reader.empty_element?
reader.read
return object if empty
while reader.forward do
case reader.node_name
when 'boot'
object.boot = BootReader.read_one(reader)
when 'cmdline'
object.cmdline = Reader.read_string(reader)
when 'custom_kernel_cmdline'
object.custom_kernel_cmdline = Reader.read_string(reader)
when 'initrd'
object.initrd = Reader.read_string(reader)
when 'kernel'
object.kernel = Reader.read_string(reader)
when 'reported_kernel_cmdline'
object.reported_kernel_cmdline = Reader.read_string(reader)
when 'type'
object.type = Reader.read_string(reader)
when 'version'
object.version = VersionReader.read_one(reader)
else
reader.next_element
end
end
reader.read
return object
end