/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model.pnl;
import java.util.Collections;
import com.opengamma.OpenGammaRuntimeException;
import com.opengamma.engine.target.ComputationTargetType;
import com.opengamma.engine.value.ValueProperties;
import com.opengamma.engine.value.ValueRequirementNames;
import com.opengamma.financial.value.ValueRenamingFunction;
/**
* Renames ValueRequirementNames.MTM_PNL ("Mark-to-Market P&L") to arbitrary value
*/
public class MarkToMarketPnlAliasFunction extends ValueRenamingFunction {
public MarkToMarketPnlAliasFunction(String aliasedValueRequirementName, String tradeTypeConstraint) {
super(Collections.singleton(ValueRequirementNames.MTM_PNL), aliasedValueRequirementName, ComputationTargetType.TRADE.or(ComputationTargetType.POSITION).or(ComputationTargetType.PORTFOLIO_NODE),
ValueProperties.with(PnLFunctionUtils.PNL_TRADE_TYPE_CONSTRAINT, tradeTypeConstraint).get());
if ((!tradeTypeConstraint.equalsIgnoreCase(PnLFunctionUtils.PNL_TRADE_TYPE_ALL))
&& (!tradeTypeConstraint.equalsIgnoreCase(PnLFunctionUtils.PNL_TRADE_TYPE_OPEN))
&& (!tradeTypeConstraint.equalsIgnoreCase(PnLFunctionUtils.PNL_TRADE_TYPE_NEW))) {
throw new OpenGammaRuntimeException(tradeTypeConstraint + "is not allowed. Looking for one of:" +
PnLFunctionUtils.PNL_TRADE_TYPE_ALL + "," + PnLFunctionUtils.PNL_TRADE_TYPE_OPEN + "," + PnLFunctionUtils.PNL_TRADE_TYPE_NEW);
}
}
}