package org.ovirt.engine.core.bll; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.VmPoolParametersBase; import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.VmPoolDao; public abstract class VmPoolCommandBase<T extends VmPoolParametersBase> extends CommandBase<T> { @Inject protected VmHandler vmHandler; @Inject private VmPoolDao vmPoolDao; private VmPool vmPool; protected VmPool getVmPool() { if (vmPool == null && getVmPoolId() != null) { vmPool = vmPoolDao.get(getVmPoolId()); } return vmPool; } protected void setVmPool(VmPool value) { vmPool = value; } protected Guid getVmPoolId() { return getParameters().getVmPoolId(); } protected void setVmPoolId(Guid value) { getParameters().setVmPoolId(value); } public String getVmPoolName() { String vmPoolName = getParameters().getVmPoolName(); if (vmPoolName != null) { return vmPoolName; } else { return getVmPool() != null ? getVmPool().getName() : null; } } @Override protected String getDescription() { return getVmPoolName(); } /** * Constructor for command creation when compensation is applied on startup */ protected VmPoolCommandBase(Guid commandId) { super(commandId); } public VmPoolCommandBase(T parameters, CommandContext commandContext) { super(parameters, commandContext); } @Override public List<PermissionSubject> getPermissionCheckSubjects() { List<PermissionSubject> permissionList = new ArrayList<>(); permissionList.add(new PermissionSubject(getVmPoolId(), VdcObjectType.VmPool, getActionType().getActionGroup())); return permissionList; } }