Package com.opengamma.engine.marketdata.resolver

Source Code of com.opengamma.engine.marketdata.resolver.TypeBasedMarketDataProviderResolver

/**
* 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.MarketDataProvider;
import com.opengamma.engine.marketdata.MarketDataProviderFactory;
import com.opengamma.engine.marketdata.spec.MarketDataSpecification;
import com.opengamma.livedata.UserPrincipal;

/**
* Resolves a {@link MarketDataSpecification} into a {@link MarketDataProvider} by specification type.
*/
public class TypeBasedMarketDataProviderResolver implements MarketDataProviderResolver {

  private final Map<Class<?>, MarketDataProviderFactory> _providerFactoryMap = new HashMap<Class<?>, MarketDataProviderFactory>();
 
  public void addProvider(Class<?> marketDataSpecType, MarketDataProviderFactory provider) {
    _providerFactoryMap.put(marketDataSpecType, provider);
  }
 
  @Override
  public MarketDataProvider resolve(UserPrincipal user, MarketDataSpecification marketDataSpec) {
    MarketDataProviderFactory providerFactory = _providerFactoryMap.get(marketDataSpec.getClass());
    if (providerFactory == null) {
      return null;
    }
    return providerFactory.create(user, marketDataSpec);
  }

}
TOP

Related Classes of com.opengamma.engine.marketdata.resolver.TypeBasedMarketDataProviderResolver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.