package org.ovirt.engine.api.restapi.types;
import org.apache.commons.lang.StringUtils;
import org.ovirt.engine.api.model.Cdrom;
import org.ovirt.engine.api.model.File;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.core.compat.Guid;
public class CdRomMapper {
public static final Guid CDROM_ID = Guid.Empty;
@Mapping(from = Cdrom.class, to = VM.class)
public static VM map(Cdrom model, VM template) {
VM entity = template != null ? template : new VM();
if (model.isSetFile() && model.getFile().isSetId()) {
entity.getStaticData().setIsoPath(model.getFile().getId());
}
return entity;
}
@Mapping(from = VM.class, to = Cdrom.class)
public static Cdrom map(VM entity, Cdrom template) {
Cdrom model = template != null ? template : new Cdrom();
model.setId(CDROM_ID.toString());
if (!StringUtils.isEmpty(entity.getStaticData().getIsoPath())) {
model.setFile(new File());
model.getFile().setId(entity.getStaticData().getIsoPath());
}
return model;
}
/**
* Bi-directional Cdrom->VmTemplate not required as
* template device collections are always read-only
*/
@Mapping(from = VmTemplate.class, to = Cdrom.class)
public static Cdrom map(VmTemplate entity, Cdrom template) {
Cdrom model = template != null ? template : new Cdrom();
model.setId(CDROM_ID.toString());
if (!StringUtils.isEmpty(entity.getIsoPath())) {
model.setFile(new File());
model.getFile().setId(entity.getIsoPath());
}
return model;
}
}