/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.target.logger;
import java.util.Map;
import com.opengamma.core.position.Portfolio;
import com.opengamma.core.position.PortfolioNode;
/**
* Wrapper around a {@link Portfolio} instance that will log any deep resolution calls.
*/
public class LoggedResolutionPortfolio extends AbstractLoggedResolution<Portfolio> implements Portfolio {
public LoggedResolutionPortfolio(final Portfolio underlying, final ResolutionLogger logger) {
super(underlying, logger);
}
// Portfolio
@Override
public Map<String, String> getAttributes() {
return getUnderlying().getAttributes();
}
@Override
public void setAttributes(Map<String, String> attributes) {
getUnderlying().setAttributes(attributes);
}
@Override
public void addAttribute(String key, String value) {
getUnderlying().addAttribute(key, value);
}
@Override
public PortfolioNode getRootNode() {
final PortfolioNode rootNode = getUnderlying().getRootNode();
// log(ComputationTargetType.PORTFOLIO_NODE, rootNode); // [PLAT-4491] Nodes are linked to portfolio by UID not OID
return new LoggedResolutionPortfolioNode(rootNode, getLogger());
}
@Override
public String getName() {
return getUnderlying().getName();
}
}