/**
* 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.change.ChangeProvider;
import com.opengamma.master.AbstractDocument;
import com.opengamma.master.AbstractMaster;
import com.opengamma.util.ArgumentChecker;
/**
*
*/
/* package */ class MasterNotificationListener<D extends AbstractDocument,
M extends AbstractMaster<D> & ChangeProvider> // CSIGNORE
implements ChangeListener, AutoCloseable {
private final M _master;
private final AnalyticsView _view;
/* package */ MasterNotificationListener(M master, AnalyticsView view) {
ArgumentChecker.notNull(master, "master");
ArgumentChecker.notNull(view, "view");
_master = master;
_view = view;
_master.changeManager().addChangeListener(this);
}
@Override
public void entityChanged(ChangeEvent event) {
_view.entityChanged(new MasterChangeNotification<>(event, _master));
}
@Override
public void close() {
_master.changeManager().removeChangeListener(this);
}
}