/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics;
import com.opengamma.engine.ComputationTarget;
import com.opengamma.engine.ComputationTargetSpecification;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.engine.target.ComputationTargetType;
/**
*
*/
public class PortfolioNodeWeightFunction extends AbstractWeightFunction {
@Override
public ComputationTargetType getTargetType() {
return ComputationTargetType.PORTFOLIO_NODE;
}
@Override
public boolean canApplyTo(final FunctionCompilationContext context, final ComputationTarget target) {
return target.getPortfolioNode().getParentNodeId() != null;
}
@Override
protected ComputationTargetSpecification getValueTarget(final ComputationTarget target) {
return target.toSpecification();
}
@Override
protected ComputationTargetSpecification getParentTarget(final ComputationTarget target) {
return new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, target.getPortfolioNode().getParentNodeId());
}
}