package org.ovirt.engine.core.common.businessentities; import java.util.Objects; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; import org.ovirt.engine.core.common.utils.ToStringBuilder; import org.ovirt.engine.core.compat.Guid; public class SubchainInfo { private Guid storageDomainId; private Integer baseImageGeneration; private DiskImage baseImage; private DiskImage topImage; public SubchainInfo() { } public SubchainInfo(DiskImage baseImage, DiskImage topImage) { this.storageDomainId = baseImage.getStorageIds().get(0); this.baseImage = baseImage; this.topImage = topImage; } public SubchainInfo(Guid storageDomainId, DiskImage baseImage, DiskImage topImage) { this.storageDomainId = storageDomainId; this.baseImage = baseImage; this.topImage = topImage; } public Guid getStorageDomainId() { return storageDomainId; } public Guid getImageGroupId() { return baseImage.getId(); } public Guid getBaseImageId() { return getBaseImage().getImageId(); } public Guid getTopImageId() { return getTopImage().getImageId(); } public Integer getBaseImageGeneration() { return baseImageGeneration; } public void setBaseImageGeneration(Integer generation) { this.baseImageGeneration = generation; } public DiskImage getBaseImage() { return baseImage; } public void setBaseImage(DiskImage baseImage) { this.baseImage = baseImage; } public DiskImage getTopImage() { return topImage; } public void setTopImage(DiskImage topImage) { this.topImage = topImage; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } SubchainInfo that = (SubchainInfo) o; return Objects.equals(storageDomainId, that.storageDomainId) && Objects.equals(baseImageGeneration, that.baseImageGeneration) && Objects.equals(baseImage, that.baseImage) && Objects.equals(topImage, that.topImage); } @Override public int hashCode() { return Objects.hash(storageDomainId, baseImageGeneration, baseImage, topImage); } @Override public String toString() { return ToStringBuilder.forInstance(this) .append("storageDomainId", storageDomainId) .append("baseImage", baseImage) .append("topImage", topImage) .append("baseImageGeneration", baseImageGeneration) .build(); } }