package org.ovirt.engine.core.vdsbroker.builder.vminfo;
import java.io.Serializable;
import java.util.Comparator;
import org.ovirt.engine.core.common.businessentities.storage.Disk;
import org.ovirt.engine.core.compat.Guid;
final class DiskByBootAndSnapshotComparator implements Comparator<Disk>, Serializable {
private static final long serialVersionUID = 4732164571328497830L;
private Guid vmId;
DiskByBootAndSnapshotComparator(Guid vmId) {
this.vmId = vmId;
}
@Override
public int compare(Disk o1, Disk o2) {
Boolean boot1 = o1.getDiskVmElementForVm(vmId).isBoot();
Boolean boot2 = o2.getDiskVmElementForVm(vmId).isBoot();
int bootResult = boot1.compareTo(boot2);
if (bootResult == 0 && boot1) {
return Boolean.compare(o2.isDiskSnapshot(), o1.isDiskSnapshot());
}
return bootResult;
}
}