/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics;
import com.opengamma.core.change.ChangeEvent;
import com.opengamma.core.change.ChangeListener;
import com.opengamma.core.position.PositionSource;
import com.opengamma.id.ObjectId;
import com.opengamma.util.ArgumentChecker;
/**
*
*/
/* package */ class PortfolioListener implements ChangeListener, AutoCloseable {
private final ObjectId _portfolioId;
private final AnalyticsView _view;
private final PositionSource _positionSource;
/* package */ PortfolioListener(ObjectId portfolioId, AnalyticsView view, PositionSource positionSource) {
ArgumentChecker.notNull(view, "view");
ArgumentChecker.notNull(positionSource, "positionSource");
_portfolioId = portfolioId;
_view = view;
_positionSource = positionSource;
_positionSource.changeManager().addChangeListener(this);
}
@Override
public void close() {
_positionSource.changeManager().removeChangeListener(this);
}
@Override
public void entityChanged(ChangeEvent event) {
if (event.getObjectId().equals(_portfolioId)) {
_view.portfolioChanged();
}
}
}