/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.marketdata.resolver;
import java.util.HashMap;
import java.util.Map;
import com.opengamma.engine.marketdata.MarketDataProviderFactory;
import com.opengamma.util.SingletonFactoryBean;
/**
* Spring factory bean for {@link TypeBasedMarketDataProviderResolver}.
*/
public class TypeBasedMarketDataProviderResolverFactoryBean extends SingletonFactoryBean<TypeBasedMarketDataProviderResolver> {
private final Map<Class<?>, MarketDataProviderFactory> _providers = new HashMap<Class<?>, MarketDataProviderFactory>();
public Map<Class<?>, MarketDataProviderFactory> getTypesAndProviders() {
return _providers;
}
public void setTypesAndProviders(Map<Class<?>, MarketDataProviderFactory> typesAndProviders) {
_providers.clear();
_providers.putAll(typesAndProviders);
}
@Override
protected TypeBasedMarketDataProviderResolver createObject() {
TypeBasedMarketDataProviderResolver resolver = new TypeBasedMarketDataProviderResolver();
for (Map.Entry<Class<?>, MarketDataProviderFactory> typeAndProvider : getTypesAndProviders().entrySet()) {
resolver.addProvider(typeAndProvider.getKey(), typeAndProvider.getValue());
}
return resolver;
}
}