def self.read_one(reader)
return nil unless reader.forward
object = VmBase.new
object.href = reader.get_attribute('href')
value = reader.get_attribute('comment')
object.comment = value if not value.nil?
value = reader.get_attribute('cpu_shares')
object.cpu_shares = value if not value.nil?
value = reader.get_attribute('creation_time')
object.creation_time = value if not value.nil?
value = reader.get_attribute('custom_cpu_model')
object.custom_cpu_model = value if not value.nil?
value = reader.get_attribute('custom_emulated_machine')
object.custom_emulated_machine = value if not value.nil?
value = reader.get_attribute('delete_protected')
object.delete_protected = 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('memory')
object.memory = value if not value.nil?
value = reader.get_attribute('migration_downtime')
object.migration_downtime = value if not value.nil?
value = reader.get_attribute('name')
object.name = value if not value.nil?
value = reader.get_attribute('origin')
object.origin = value if not value.nil?
value = reader.get_attribute('soundcard_enabled')
object.soundcard_enabled = value if not value.nil?
value = reader.get_attribute('start_paused')
object.start_paused = value if not value.nil?
value = reader.get_attribute('stateless')
object.stateless = value if not value.nil?
value = reader.get_attribute('tunnel_migration')
object.tunnel_migration = 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 'bios'
object.bios = BiosReader.read_one(reader)
when 'comment'
object.comment = Reader.read_string(reader)
when 'console'
object.console = ConsoleReader.read_one(reader)
when 'cpu'
object.cpu = CpuReader.read_one(reader)
when 'cpu_shares'
object.cpu_shares = Reader.read_integer(reader)
when 'creation_time'
object.creation_time = Reader.read_date(reader)
when 'custom_compatibility_version'
object.custom_compatibility_version = VersionReader.read_one(reader)
when 'custom_cpu_model'
object.custom_cpu_model = Reader.read_string(reader)
when 'custom_emulated_machine'
object.custom_emulated_machine = Reader.read_string(reader)
when 'custom_properties'
object.custom_properties = CustomPropertyReader.read_many(reader)
when 'delete_protected'
object.delete_protected = Reader.read_boolean(reader)
when 'description'
object.description = Reader.read_string(reader)
when 'display'
object.display = DisplayReader.read_one(reader)
when 'domain'
object.domain = DomainReader.read_one(reader)
when 'high_availability'
object.high_availability = HighAvailabilityReader.read_one(reader)
when 'id'
object.id = Reader.read_string(reader)
when 'initialization'
object.initialization = InitializationReader.read_one(reader)
when 'io'
object.io = IoReader.read_one(reader)
when 'large_icon'
object.large_icon = IconReader.read_one(reader)
when 'memory'
object.memory = Reader.read_integer(reader)
when 'memory_policy'
object.memory_policy = MemoryPolicyReader.read_one(reader)
when 'migration'
object.migration = MigrationOptionsReader.read_one(reader)
when 'migration_downtime'
object.migration_downtime = Reader.read_integer(reader)
when 'name'
object.name = Reader.read_string(reader)
when 'origin'
object.origin = Reader.read_string(reader)
when 'os'
object.os = OperatingSystemReader.read_one(reader)
when 'rng_device'
object.rng_device = RngDeviceReader.read_one(reader)
when 'serial_number'
object.serial_number = SerialNumberReader.read_one(reader)
when 'small_icon'
object.small_icon = IconReader.read_one(reader)
when 'soundcard_enabled'
object.soundcard_enabled = Reader.read_boolean(reader)
when 'sso'
object.sso = SsoReader.read_one(reader)
when 'start_paused'
object.start_paused = Reader.read_boolean(reader)
when 'stateless'
object.stateless = Reader.read_boolean(reader)
when 'time_zone'
object.time_zone = TimeZoneReader.read_one(reader)
when 'tunnel_migration'
object.tunnel_migration = Reader.read_boolean(reader)
when 'type'
object.type = Reader.read_string(reader)
when 'usb'
object.usb = UsbReader.read_one(reader)
when 'virtio_scsi'
object.virtio_scsi = VirtioScsiReader.read_one(reader)
when 'cluster'
object.cluster = ClusterReader.read_one(reader)
when 'cpu_profile'
object.cpu_profile = CpuProfileReader.read_one(reader)
when 'quota'
object.quota = QuotaReader.read_one(reader)
when 'storage_domain'
object.storage_domain = StorageDomainReader.read_one(reader)
else
reader.next_element
end
end
reader.read
return object
end