package org.ovirt.engine.api.restapi.types;
import org.ovirt.engine.api.model.SerialNumber;
import org.ovirt.engine.api.model.SerialNumberPolicy;
import org.ovirt.engine.core.common.businessentities.HasSerialNumberPolicy;
public class SerialNumberMapper {
@Mapping(from = HasSerialNumberPolicy.class, to = SerialNumber.class)
public static SerialNumber map(HasSerialNumberPolicy entity, SerialNumber template) {
if (template == null) {
template = new SerialNumber();
}
template.setPolicy(map(entity.getSerialNumberPolicy(), null));
template.setValue(entity.getCustomSerialNumber());
return template;
}
public static void copySerialNumber(SerialNumber serialNumber, HasSerialNumberPolicy entity) {
if (serialNumber.isSetPolicy()) {
entity.setSerialNumberPolicy(map(serialNumber.getPolicy(), null));
}
if (serialNumber.isSetValue()) {
String customSerialNumber = "".equals(serialNumber.getValue()) ? null : serialNumber.getValue();
entity.setCustomSerialNumber(customSerialNumber);
}
}
@Mapping(from = SerialNumberPolicy.class, to = org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.class)
public static org.ovirt.engine.core.common.businessentities.SerialNumberPolicy map(SerialNumberPolicy serialNumberPolicy, org.ovirt.engine.core.common.businessentities.SerialNumberPolicy template) {
if (serialNumberPolicy == null) {
return null;
}
switch (serialNumberPolicy) {
case HOST:
return org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.HOST_ID;
case VM:
return org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.VM_ID;
case CUSTOM:
return org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.CUSTOM;
}
return null;
}
@Mapping(from = org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.class, to = SerialNumberPolicy.class)
public static SerialNumberPolicy map(org.ovirt.engine.core.common.businessentities.SerialNumberPolicy serialNumberPolicy, SerialNumberPolicy template) {
if (serialNumberPolicy == null) {
return null;
}
switch (serialNumberPolicy) {
case HOST_ID:
return SerialNumberPolicy.HOST;
case VM_ID:
return SerialNumberPolicy.VM;
case CUSTOM:
return SerialNumberPolicy.CUSTOM;
}
return null;
}
}