package org.ovirt.engine.core.bll; 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.action.ClusterParametersBase; import org.ovirt.engine.core.common.businessentities.Cluster; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.ClusterDao; public abstract class ClusterCommandBase<T extends ClusterParametersBase> extends CommandBase<T> { @Inject private ClusterPermissionsFinder clusterPermissionsFinder; @Inject protected CpuFlagsManagerHandler cpuFlagsManagerHandler; @Inject private ClusterDao clusterDao; private Cluster cluster; protected ClusterCommandBase(Guid commandId) { super(commandId); } public ClusterCommandBase(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); setClusterId(parameters.getClusterId()); } protected CpuFlagsManagerHandler getCpuFlagsManagerHandler() { return cpuFlagsManagerHandler; } @Override public Cluster getCluster() { if (cluster == null) { cluster = clusterDao.get(getParameters().getClusterId()); } return cluster; } @Override public String getClusterName() { if (getCluster() != null) { return getCluster().getName(); } else { return null; } } @Override public List<PermissionSubject> getPermissionCheckSubjects() { return clusterPermissionsFinder.findPermissionCheckSubjects(getClusterId(), getActionType()); } }