/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.master; import java.util.List; import com.opengamma.core.change.AggregatingChangeManager; import com.opengamma.core.change.ChangeManager; /** * Adds logic for handling changes across a list of combined masters. * @param <D> document type * @param <M> type of a change providing master */ public class ChangeProvidingCombinedMaster<D extends AbstractDocument, M extends AbstractChangeProvidingMaster<D>> extends CombinedMaster<D, M> implements AbstractChangeProvidingMaster<D> { private final AggregatingChangeManager _changeManager; protected ChangeProvidingCombinedMaster(List<M> masterList) { super(masterList); AggregatingChangeManager changeManager = new AggregatingChangeManager(); for (M master : masterList) { changeManager.addChangeManager(master.changeManager()); } _changeManager = changeManager; } @Override public ChangeManager changeManager() { return _changeManager; } }