package org.ovirt.engine.api.restapi.types; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.ovirt.engine.api.model.Rate; import org.ovirt.engine.api.model.RngDevice; import org.ovirt.engine.api.model.RngSource; import org.ovirt.engine.core.common.businessentities.VmRngDevice; public class RngDeviceMapper { @Mapping(from = VmRngDevice.class, to = RngDevice.class) public static RngDevice map(VmRngDevice entity, RngDevice template) { RngDevice model = (template == null) ? new RngDevice() : template; if (entity.getBytes() != null) { model.setRate(new Rate()); model.getRate().setBytes(entity.getBytes()); if (entity.getPeriod() != null) { model.getRate().setPeriod(entity.getPeriod()); } } RngSource restSource = map(entity.getSource(), null); model.setSource(restSource); return model; } public static RngSource map(VmRngDevice.Source backend, RngSource rest) { if (backend != null) { return RngSource.fromValue(backend.name()); } return null; } @Mapping(from = RngSource.class, to = VmRngDevice.Source.class) public static VmRngDevice.Source map(RngSource model, VmRngDevice.Source template) { if (model != null) { return VmRngDevice.Source.valueOf(model.name()); } return null; } @Mapping(from = RngDevice.class, to = VmRngDevice.class) public static VmRngDevice map(RngDevice model, VmRngDevice template) { if (model != null && model.isSetSource()) { VmRngDevice dev = new VmRngDevice(); if (model.isSetRate()) { dev.setBytes(model.getRate().getBytes()); if (model.getRate().isSetPeriod()) { dev.setPeriod(model.getRate().getPeriod()); } } VmRngDevice.Source source = VmRngDevice.Source.valueOf(model.getSource().name()); if (source != null) { dev.setSource(source); return dev; } } return null; } public static List<VmRngDevice.Source> mapRngSources(List<RngSource> model) { List<VmRngDevice.Source> result = new ArrayList<>(model != null? model.size(): 0); if (model != null) { for (RngSource source : model) { result.add(map(source, null)); } } return result; } public static List<RngSource> mapRngSources(Collection<VmRngDevice.Source> entity) { List<RngSource> result = new ArrayList<>(entity != null ? entity.size(): 0); if (entity != null) { for (VmRngDevice.Source source : entity) { RngSource restSource = map(source, null); result.add(restSource); } } return result; } }