/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.master.position.impl; import com.opengamma.id.UniqueId; import com.opengamma.master.AbstractDataTrackingMaster; import com.opengamma.master.position.ManageableTrade; import com.opengamma.master.position.PositionDocument; import com.opengamma.master.position.PositionHistoryRequest; import com.opengamma.master.position.PositionHistoryResult; import com.opengamma.master.position.PositionMaster; import com.opengamma.master.position.PositionSearchRequest; import com.opengamma.master.position.PositionSearchResult; /** * Position master which tracks accesses using UniqueIds. */ public class DataTrackingPositionMaster extends AbstractDataTrackingMaster<PositionDocument, PositionMaster> implements PositionMaster { public DataTrackingPositionMaster(PositionMaster delegate) { super(delegate); } @Override public PositionSearchResult search(PositionSearchRequest request) { PositionSearchResult searchResult = delegate().search(request); trackDocs(searchResult.getDocuments()); return searchResult; } @Override public PositionHistoryResult history(PositionHistoryRequest request) { PositionHistoryResult historyResult = delegate().history(request); trackDocs(historyResult.getDocuments()); return historyResult; } @Override public ManageableTrade getTrade(UniqueId tradeId) { //trades are wrapped by positions so don't need to //be tracked return delegate().getTrade(tradeId); } }