/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.view.compilation;
import com.opengamma.engine.depgraph.DependencyGraphBuilderFactory;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.engine.function.resolver.FunctionResolver;
import com.opengamma.engine.marketdata.availability.MarketDataAvailabilityProvider;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.PoolExecutor;
// REVIEW kirk 2010-05-22 -- I don't like this name but couldn't come up with a better
// one on the fly.
/**
* All the injected services necessary for view compilation.
*/
public class ViewCompilationServices {
private final MarketDataAvailabilityProvider _marketDataAvailabilityProvider;
private final FunctionResolver _functionResolver;
private final PoolExecutor _executorService;
private final FunctionCompilationContext _compilationContext;
private final DependencyGraphBuilderFactory _dependencyGraphBuilder;
/**
* Constructs an instance
*
* @param marketDataAvailabilityProvider the market data availability provider
* @param functionResolver the function resolver
* @param compilationContext the function compilation context
* @param executorService the executor service
* @param dependencyGraphBuilder the graph building implementation
*/
public ViewCompilationServices(
MarketDataAvailabilityProvider marketDataAvailabilityProvider,
FunctionResolver functionResolver,
FunctionCompilationContext compilationContext,
PoolExecutor executorService,
DependencyGraphBuilderFactory dependencyGraphBuilder) {
ArgumentChecker.notNull(marketDataAvailabilityProvider, "marketDataAvailabilityProvider");
ArgumentChecker.notNull(functionResolver, "functionResolver");
ArgumentChecker.notNull(compilationContext, "compilationContext");
ArgumentChecker.notNull(executorService, "executorService");
ArgumentChecker.notNull(dependencyGraphBuilder, "dependencyGraphBuilder");
_marketDataAvailabilityProvider = marketDataAvailabilityProvider;
_functionResolver = functionResolver;
_compilationContext = compilationContext;
_executorService = executorService;
_dependencyGraphBuilder = dependencyGraphBuilder;
}
//-------------------------------------------------------------------------
/**
* Gets the market data availability provider.
*
* @return the market data availability provider, not null
*/
public MarketDataAvailabilityProvider getMarketDataAvailabilityProvider() {
return _marketDataAvailabilityProvider;
}
/**
* Gets the function resolver.
*
* @return the function resolver, not null
*/
public FunctionResolver getFunctionResolver() {
return _functionResolver;
}
/**
* Gets the executor service.
*
* @return the executor service, not null
*/
public PoolExecutor getExecutorService() {
return _executorService;
}
/**
* Gets the compilation context.
*
* @return the compilation context, not null
*/
public FunctionCompilationContext getFunctionCompilationContext() {
return _compilationContext;
}
/**
* Gets the dependency graph builder factory.
*
* @return the dependency graph builder factory, not null
*/
public DependencyGraphBuilderFactory getDependencyGraphBuilder() {
return _dependencyGraphBuilder;
}
}