package org.ovirt.engine.api.restapi.types; import org.ovirt.engine.api.model.InheritableBoolean; import org.ovirt.engine.api.model.MigrationOptions; import org.ovirt.engine.api.model.MigrationPolicy; import org.ovirt.engine.core.common.businessentities.HasMigrationOptions; import org.ovirt.engine.core.compat.Guid; public class MigrationOptionsMapper { @Mapping(from = HasMigrationOptions.class, to = MigrationOptions.class) public static MigrationOptions map(HasMigrationOptions entity, MigrationOptions template) { if (template == null) { template = new MigrationOptions(); } template.setAutoConverge(mapToInheritableBoolean(entity.getAutoConverge())); template.setCompressed(mapToInheritableBoolean(entity.getMigrateCompressed())); if (entity.getMigrationPolicyId() != null) { MigrationPolicy policy = template.getPolicy(); if (policy == null) { policy = new MigrationPolicy(); template.setPolicy(policy); } policy.setId(entity.getMigrationPolicyId().toString()); } return template; } public static void copyMigrationOptions(MigrationOptions model, HasMigrationOptions entity) { if (model.isSetAutoConverge()) { entity.setAutoConverge(mapFromInheritableBoolean(model.getAutoConverge())); } if (model.isSetCompressed()) { entity.setMigrateCompressed(mapFromInheritableBoolean(model.getCompressed())); } if (model.isSetPolicy()) { if (model.getPolicy().isSetId()) { entity.setMigrationPolicyId(Guid.createGuidFromString(model.getPolicy().getId())); } else { entity.setMigrationPolicyId(null); } } } private static InheritableBoolean mapToInheritableBoolean(Boolean value) { return InheritableBooleanMapper.map(value); } public static Boolean mapFromInheritableBoolean(InheritableBoolean value) { return InheritableBooleanMapper.map(value); } }