/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.master.portfolio.impl;
import com.opengamma.id.UniqueId;
import com.opengamma.master.AbstractDataTrackingMaster;
import com.opengamma.master.portfolio.ManageablePortfolioNode;
import com.opengamma.master.portfolio.PortfolioDocument;
import com.opengamma.master.portfolio.PortfolioHistoryRequest;
import com.opengamma.master.portfolio.PortfolioHistoryResult;
import com.opengamma.master.portfolio.PortfolioMaster;
import com.opengamma.master.portfolio.PortfolioSearchRequest;
import com.opengamma.master.portfolio.PortfolioSearchResult;
/**
* Portfolio master which tracks accesses using UniqueIds.
*/
public class DataTrackingPortfolioMaster extends AbstractDataTrackingMaster<PortfolioDocument, PortfolioMaster> implements PortfolioMaster {
public DataTrackingPortfolioMaster(PortfolioMaster delegate) {
super(delegate);
}
@Override
public PortfolioSearchResult search(PortfolioSearchRequest request) {
PortfolioSearchResult searchResult = delegate().search(request);
trackDocs(searchResult.getDocuments());
return searchResult;
}
@Override
public PortfolioHistoryResult history(PortfolioHistoryRequest request) {
PortfolioHistoryResult historyResult = delegate().history(request);
trackDocs(historyResult.getDocuments());
return historyResult;
}
@Override
public ManageablePortfolioNode getNode(UniqueId nodeId) {
ManageablePortfolioNode node = delegate().getNode(nodeId);
trackId(node.getUniqueId());
return node;
}
}