package org.ovirt.engine.ui.uicommonweb.models.vms; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Map; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage.VolumeType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; public class ImportDiskData { ArrayList<StorageDomain> storageDomains; StorageDomain selectedStorageDomain; EntityModel collapseSnapshots; private ArrayList<StorageDomain> allStorageDomains; VolumeType volumeType; VolumeType selectedVolumeType; Map<Guid, ArrayList<Quota>> storageQuotaList; Quota selectedQuota; public Map<Guid, ArrayList<Quota>> getStorageQuotaList() { return storageQuotaList; } public void setStorageQuotaList(Map<Guid, ArrayList<Quota>> storageQuotaList) { this.storageQuotaList = storageQuotaList; } public Quota getSelectedQuota() { if (getQuotaList().contains(selectedQuota)) { return selectedQuota; } if (getQuotaList().size() > 0) { return getQuotaList().get(0); } return null; } public void setSelectedQuota(Quota selectedQuota) { this.selectedQuota = selectedQuota; } public VolumeType getSelectedVolumeType() { if (!(Boolean) collapseSnapshots.getEntity()) { return getVolumeType(); } return selectedVolumeType; } public void setSelectedVolumeType(VolumeType selectedVolumeType) { this.selectedVolumeType = selectedVolumeType; } public ArrayList<StorageDomain> getStorageDomains() { if ((Boolean) collapseSnapshots.getEntity() && storageDomains != null && !storageDomains.isEmpty()) { return allStorageDomains; } return storageDomains; } public void setStorageDomains(ArrayList<StorageDomain> storageDomains) { this.storageDomains = storageDomains; } public StorageDomain getSelectedStorageDomain() { if (selectedStorageDomain == null && !storageDomains.isEmpty()) { selectedStorageDomain = Collections.max(storageDomains, Comparator.comparing(StorageDomain::getAvailableDiskSize)); } return selectedStorageDomain; } public void setSelectedStorageDomain(StorageDomain selectedStorageDomain) { this.selectedStorageDomain = selectedStorageDomain; } public void setSelectedStorageDomainString(String value) { for (StorageDomain storageDomain : getStorageDomains()) { if (storageDomain.getStorageName().equals(value)) { setSelectedStorageDomain(storageDomain); break; } } } public void setAllStorageDomains(ArrayList<StorageDomain> filteredStorageDomain) { allStorageDomains = filteredStorageDomain; } public VolumeType getVolumeType() { return volumeType; } public void setVolumeType(VolumeType type) { volumeType = type; setSelectedVolumeType(type); } public void setCollapseSnapshot(EntityModel collapseSnapshotsModel) { if (!(Boolean) collapseSnapshotsModel.getEntity()) { setSelectedVolumeType(getVolumeType()); } this.collapseSnapshots = collapseSnapshotsModel; } public ArrayList<Quota> getQuotaList() { if (storageQuotaList == null || allStorageDomains.isEmpty() || storageDomains.isEmpty()) { return new ArrayList<>(); } if (selectedStorageDomain == null) { selectedStorageDomain = storageDomains.get(0); } return storageQuotaList.get(selectedStorageDomain.getId()); } public void setSelectedQuotaString(String value) { if (getQuotaList() != null) { for (Quota quota : getQuotaList()) { if (quota.getQuotaName().equals(value)) { setSelectedQuota(quota); break; } } } } }