/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.function.resolver; import java.util.Collection; import com.opengamma.util.PublicAPI; /** * Transforms one set of resolution rules into another. * <p> * This allows a set of resolution rules to be altered based on the requirements of a calculation configuration. * For example, some rules might be suppressed for all or some targets, the priorities may be changed, * or additional rules added. */ @PublicAPI public interface ResolutionRuleTransform { /** * Transforms the input rules, returning a new collection of rules. * <p> * Implementations must be aware that the input may be immutable, and create a new collection * if performing modification. * If no modification is required, the input collection should be returned. * * @param inputRules the input collection of rules to transform, may be immutable, not null * @return the new collection of rules, or the input if no changes are required, not null */ Collection<ResolutionRule> transform(Collection<ResolutionRule> inputRules); }