/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model.equity.option;
import com.opengamma.core.security.Security;
import com.opengamma.engine.ComputationTarget;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.engine.value.ValueRequirementNames;
import com.opengamma.financial.security.equity.EquitySecurity;
import com.opengamma.financial.security.option.EquityIndexOptionSecurity;
import com.opengamma.financial.security.option.EquityOptionSecurity;
/**
* Prototype - Takes {@link ValueRequirementNames#NET_MARKET_VALUE} as input requirement,
* and scales by a constant representing, say, a fund's capital.<p>
* <p>
* Applies only to Equity Security Types
*/
public class EquityNetCapitalFunction extends NetCapitalFunction {
protected String getOutputName() {
return ValueRequirementNames.EQUITY_NET_CAPITAL;
}
@Override
public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) {
Security security = target.getPositionOrTrade().getSecurity();
if ((security instanceof EquitySecurity) ||
(security instanceof EquityOptionSecurity) ||
(security instanceof EquityIndexOptionSecurity)) {
return true;
}
return false;
}
}