/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.function.blacklist; import java.util.ArrayList; import java.util.Collection; import com.opengamma.engine.calcnode.CalculationJobItem; import com.opengamma.util.ArgumentChecker; /** * Wraps multiple {@link FunctionBlacklistMaintainer} instances up as a single point that a provider of failure information should reference. */ public class MultipleFunctionBlacklistMaintainer implements FunctionBlacklistMaintainer { private final Collection<FunctionBlacklistMaintainer> _underlying; public MultipleFunctionBlacklistMaintainer(final Collection<FunctionBlacklistMaintainer> underlying) { ArgumentChecker.notNull(underlying, "underlying"); _underlying = new ArrayList<FunctionBlacklistMaintainer>(underlying); } private Collection<FunctionBlacklistMaintainer> getUnderlying() { return _underlying; } @Override public void failedJobItem(final CalculationJobItem item) { for (FunctionBlacklistMaintainer underlying : getUnderlying()) { underlying.failedJobItem(item); } } @Override public void failedJobItems(final Collection<CalculationJobItem> items) { for (FunctionBlacklistMaintainer underlying : getUnderlying()) { underlying.failedJobItems(items); } } }