package org.ovirt.engine.core.bll.storage.domain;
import javax.inject.Inject;
import org.ovirt.engine.core.bll.context.CommandContext;
import org.ovirt.engine.core.common.action.StorageDomainManagementParameter;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.StorageDomainStaticDao;
public abstract class StorageDomainManagementCommandBase<T extends StorageDomainManagementParameter> extends
StorageDomainCommandBase<T> {
@Inject
private StorageDomainStaticDao storageDomainStaticDao;
/**
* Constructor for command creation when compensation is applied on startup
*/
protected StorageDomainManagementCommandBase(Guid commandId) {
super(commandId);
}
public StorageDomainManagementCommandBase(T parameters,
CommandContext commandContext) {
super(parameters, commandContext);
}
@Override
public StorageDomain getStorageDomain() {
if (super.getStorageDomain() == null) {
super.setStorageDomain(new StorageDomain());
}
super.getStorageDomain().setStorageStaticData(getParameters().getStorageDomain());
return super.getStorageDomain();
}
protected boolean isStorageWithSameNameExists() {
return storageDomainStaticDao.getByName(getStorageDomain().getStorageName()) != null;
}
}