package org.ovirt.engine.core.bll;
import java.util.Map;
import javax.inject.Inject;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.dao.VmTemplateDao;
/**
* A query to retrieve all the VM templates connected to a given image.
* The return value if a map from the image's plug state (<code>true</code>/<code>false</code>) to the relevant VM Templates.
*/
public class GetVmTemplatesByImageGuidQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> {
@Inject
private VmTemplateDao vmTemplateDao;
@Inject
private VmTemplateHandler vmTemplateHandler;
public GetVmTemplatesByImageGuidQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
Map<Boolean, VmTemplate> templateMap = vmTemplateDao.getAllForImage(getParameters().getId());
if (!templateMap.values().isEmpty()) {
updateDisksFromDb(templateMap.values().iterator().next());
}
getQueryReturnValue().setReturnValue(templateMap);
}
protected void updateDisksFromDb(VmTemplate t) {
vmTemplateHandler.updateDisksFromDb(t);
}
}