package org.ovirt.engine.ui.uicommonweb.models.profiles; import java.util.List; import org.ovirt.engine.core.common.action.CpuProfileParameters; import org.ovirt.engine.core.common.action.ProfileParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.Cluster; import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.core.common.businessentities.qos.CpuQos; import org.ovirt.engine.core.common.businessentities.qos.QosType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.ui.uicommonweb.models.IModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; public abstract class CpuProfileBaseModel extends ProfileBaseModel<CpuProfile, CpuQos, Cluster> { private static final CpuQos EMPTY_QOS; static { EMPTY_QOS = new CpuQos(); EMPTY_QOS.setName(ConstantsManager.getInstance().getConstants().unlimitedQoSTitle()); EMPTY_QOS.setId(Guid.Empty); } public CpuProfileBaseModel(IModel sourceModel, Guid dcId, Guid defaultQosId, VdcActionType vdcActionType) { super(sourceModel, dcId, defaultQosId, vdcActionType); } @Override public void flush() { if (getProfile() == null) { setProfile(new CpuProfile()); } CpuProfile cpuProfile = getProfile(); cpuProfile.setName(getName().getEntity()); cpuProfile.setDescription(getDescription().getEntity()); Cluster cluster = getParentListModel().getSelectedItem(); cpuProfile.setClusterId(cluster != null ? cluster.getId() : null); CpuQos cpuQos = getQos().getSelectedItem(); cpuProfile.setQosId(cpuQos != null && cpuQos.getId() != null && !cpuQos.getId().equals(Guid.Empty) ? cpuQos.getId() : null); } @Override protected void postInitQosList(List<CpuQos> qosList) { qosList.add(0, EMPTY_QOS); getQos().setItems(qosList); if (getDefaultQosId() != null) { for (CpuQos cpuQos : qosList) { if (getDefaultQosId().equals(cpuQos.getId())) { getQos().setSelectedItem(cpuQos); break; } } } } @Override protected QosType getQosType() { return QosType.CPU; } @Override protected ProfileParametersBase<CpuProfile> getParameters() { CpuProfileParameters cpuProfileParameters = new CpuProfileParameters(getProfile()); cpuProfileParameters.setAddPermissions(true); return cpuProfileParameters; } }