package org.ovirt.engine.core.bll.provider.network; import javax.inject.Inject; import org.ovirt.engine.core.bll.QueriesCommandBase; import org.ovirt.engine.core.bll.provider.ProviderProxyFactory; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.dao.network.NetworkDao; import org.ovirt.engine.core.dao.provider.ProviderDao; public class GetExternalSubnetsOnProviderByNetworkQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { @Inject private NetworkDao networkDao; @Inject private ProviderDao providerDao; public GetExternalSubnetsOnProviderByNetworkQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { Network network = networkDao.get(getParameters().getId()); if (network == null || !network.isExternal()) { return; } Provider<?> provider = providerDao.get(network.getProvidedBy().getProviderId()); if (provider == null) { return; } NetworkProviderProxy client = getProviderProxyFactory().create(provider); getQueryReturnValue().setReturnValue(client.getAllSubnets(network.getProvidedBy())); } protected ProviderProxyFactory getProviderProxyFactory() { return ProviderProxyFactory.getInstance(); } }