/**
* 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.Collection;
import com.opengamma.util.tuple.Pair;
import com.opengamma.util.tuple.Pairs;
/**
* Partial implementation of {@link FunctionBlacklistRuleListener}. A full set of rules is queried initially and whenever the modification count changes unexpectedly. The listener can only be
* associated with a single blacklist which must be specified at construction.
*/
public abstract class AbstractFunctionBlacklistRuleListener extends BaseFunctionBlacklistRuleListener {
private final FunctionBlacklist _blacklist;
protected AbstractFunctionBlacklistRuleListener(final FunctionBlacklist blacklist) {
_blacklist = blacklist;
}
protected FunctionBlacklist getBlacklist() {
return _blacklist;
}
protected void init() {
init(getBlacklist().getModificationCount(), getBlacklist().getRules());
}
@Override
protected Pair<Integer, ? extends Collection<FunctionBlacklistRule>> getUnderlyingRules(final int modificationCount) {
final int mc = getBlacklist().getModificationCount();
if (mc == modificationCount) {
return null;
}
return Pairs.of((Integer) mc, getBlacklist().getRules());
}
}