/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.exec.plan; import java.util.Collection; import java.util.HashMap; import java.util.Map; import com.opengamma.engine.function.FunctionParameters; import com.opengamma.engine.value.ValueSpecification; import com.opengamma.engine.view.impl.ExecutionLogModeSource; /** * State shared among fragments of a dependency graph as part of the multiple node partitioning algorithm. */ /*package*/class GraphFragmentContext { private final String _calculationConfig; private final ExecutionLogModeSource _logModeSource; private final long _functionInitializationId; private final Map<ValueSpecification, Boolean> _sharedCacheValues = new HashMap<ValueSpecification, Boolean>(); private final Map<ValueSpecification, FunctionParameters> _parameters; public GraphFragmentContext(final String calculationConfig, final ExecutionLogModeSource logModeSource, final long functionInitializationId, final Collection<ValueSpecification> sharedValues, final Map<ValueSpecification, FunctionParameters> parameters) { _calculationConfig = calculationConfig; _logModeSource = logModeSource; _functionInitializationId = functionInitializationId; for (ValueSpecification sharedValue : sharedValues) { _sharedCacheValues.put(sharedValue, Boolean.TRUE); } _parameters = parameters; } public String getCalculationConfig() { return _calculationConfig; } public ExecutionLogModeSource getLogModeSource() { return _logModeSource; } public long getFunctionInitId() { return _functionInitializationId; } public Map<ValueSpecification, Boolean> getSharedCacheValues() { return _sharedCacheValues; } public void setTerminalOutputs(final Collection<ValueSpecification> outputs) { for (ValueSpecification output : outputs) { _sharedCacheValues.put(output, Boolean.TRUE); } } public Map<ValueSpecification, FunctionParameters> getParameters() { return _parameters; } }