package org.ovirt.engine.core.bll; import java.util.List; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.GetVmTemplatesByStoragePoolIdParameters; import org.ovirt.engine.core.common.queries.SearchParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class GetVmTemplatesByStoragePoolIdQuery<P extends GetVmTemplatesByStoragePoolIdParameters> extends QueriesCommandBase<P> { public GetVmTemplatesByStoragePoolIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { storage_pool pool = DbFacade.getInstance().getStoragePoolDAO().get(getParameters().getStoragePoolId()); SearchParameters p = new SearchParameters(String.format("Templates: DataCenter = %1$s", pool.getname()), SearchType.VmTemplate); p.setMaxCount(Integer.MAX_VALUE); VdcQueryReturnValue returnValue = Backend.getInstance().runInternalQuery(VdcQueryType.Search, p); if (returnValue != null && returnValue.getSucceeded()) { // java.util.ArrayList<VmTemplate> templateList = null; //LINQ // ((IEnumerable)returnValue.ReturnValue).Cast<VmTemplate>().ToList(); List<VmTemplate> templateList = (List) returnValue.getReturnValue(); VmTemplate blank = DbFacade.getInstance().getVmTemplateDAO() .get(VmTemplateHandler.BlankVmTemplateId); if (!templateList.contains(blank)) { templateList.add(0, blank); } getQueryReturnValue().setReturnValue(templateList); } } }