/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.spring;
import com.opengamma.engine.depgraph.ComputationTargetCollapser;
import com.opengamma.engine.depgraph.DefaultComputationTargetCollapser;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.financial.OpenGammaCompilationContext;
import com.opengamma.financial.temptarget.TempTargetRepository;
import com.opengamma.financial.view.ViewEvaluationTarget;
import com.opengamma.financial.view.ViewEvaluationTargetCollapser;
import com.opengamma.util.SingletonFactoryBean;
/**
* Creates {@link ComputationTargetCollapser} appropriate for the {@link DemoStandardFunctionConfiguration} functions.
*/
public class DemoComputationTargetCollapserBean extends SingletonFactoryBean<ComputationTargetCollapser> {
private FunctionCompilationContext _compilationContext;
public void setCompilationContext(final FunctionCompilationContext context) {
_compilationContext = context;
}
public FunctionCompilationContext getCompilationContext() {
return _compilationContext;
}
@Override
protected ComputationTargetCollapser createObject() {
final DefaultComputationTargetCollapser collapser = new DefaultComputationTargetCollapser();
if (getCompilationContext() != null) {
final TempTargetRepository tempTargets = OpenGammaCompilationContext.getTempTargets(getCompilationContext());
if (tempTargets != null) {
collapser.addCollapser(ViewEvaluationTarget.TYPE, new ViewEvaluationTargetCollapser(tempTargets));
}
}
return collapser;
}
}