return provider;
provider = (DMDServiceProvider) provider_class.newInstance(); if (!provider.canProvide(query)) { System.err.println("DinomedaTrader: provider-offer missmatch"); System.err.println("Provider=" + class_name); System.err.println("offer=" + offers[0]); provider = null; } } catch (Exception exception) { exception.printStackTrace(System.err);
  public DMDServiceProvider findService(DMDServiceQuery query)      throws IllegalArgumentException  {    if (query == null)    {      throw new IllegalArgumentException();    }    DMDServiceProvider provider = null;    Iterator iter = providers_.values().iterator();    while (iter.hasNext())    {      provider = (DMDServiceProvider) iter.next();      if (provider != null)      {        if (provider.canProvide(query))        {          return provider;        }      }    }    return null;  }