// the last image in each list is the leaf
  public static Map<Guid, List<DiskImage>> getImagesLeaf(List<DiskImage> images) {
    Map<Guid, List<DiskImage>> retVal = new HashMap<>();
    for (DiskImage image : images) {
      MultiValueMapUtils.addToMap(image.getId(), image, retVal);
    }

    for (List<DiskImage> list : retVal.values()) {
      sortImageList(list);
    }
    return retVal;
  }
  @Override
  protected void executeCommand() {
    List<DiskImage> images =
        diskImageDao.getAllSnapshotsForImageGroup(getParameters().getImageGroupID());
    ImagesHandler.sortImageList(images);
    getParameters().setImageIds(ImagesHandler.getDiskImageIds(images));

    prepareWeights(images);

    persistCommand(getParameters().getParentCommand(), getCallback() != null);
    setSucceeded(true);
  }
 public static DiskImage getSnapshotLeaf(Guid diskId) {
   List<DiskImage> diskSnapshots =
       DbFacade.getInstance().getDiskImageDao().getAllSnapshotsForImageGroup(diskId);
   sortImageList(diskSnapshots);
   return diskSnapshots.get(diskSnapshots.size() - 1);
 }