package org.ovirt.engine.core.bll; import java.util.Collections; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.comparators.DiskByDiskAliasComparator; import org.ovirt.engine.core.common.businessentities.comparators.VmTemplateComparerByDiskSize; import org.ovirt.engine.core.common.queries.GetVmTemplatesFromStorageDomainParameters; import org.ovirt.engine.core.dao.VmTemplateDao; public class GetVmTemplatesFromStorageDomainQuery<P extends GetVmTemplatesFromStorageDomainParameters> extends QueriesCommandBase<P> { @Inject private VmTemplateDao vmTemplateDao; @Inject private VmTemplateHandler vmTemplateHandler; public GetVmTemplatesFromStorageDomainQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { List<VmTemplate> returnValue = vmTemplateDao.getAllForStorageDomain(getParameters().getId(), getUserID(), getParameters().isFiltered()); if (getParameters().isWithDisks()) { for (VmTemplate template : returnValue) { vmTemplateHandler.updateDisksFromDb(template); Collections.sort(template.getDiskList(), new DiskByDiskAliasComparator()); } } Collections.sort(returnValue, Collections.reverseOrder(new VmTemplateComparerByDiskSize())); getQueryReturnValue().setReturnValue(returnValue); } }