@Override
 protected void apply(
     final ResolutionRule originalRule, final Collection<ResolutionRule> output) {
   ParameterizedFunction function = originalRule.getFunction();
   if (_parameters != null) {
     function = new ParameterizedFunction(originalRule.getFunction().getFunction(), _parameters);
   }
   final ComputationTargetFilter computationTargetFilter;
   if (_computationTargetFilter != null) {
     computationTargetFilter = _computationTargetFilter;
   } else {
     computationTargetFilter = originalRule.getComputationTargetFilter();
   }
   int priority = originalRule.getPriority();
   if (_priorityAdjustment != null) {
     priority += _priorityAdjustment;
   }
   final ResolutionRule replacement =
       new ResolutionRule(function, computationTargetFilter, priority);
   s_logger.debug("Publishing {} in place of {}", replacement, originalRule);
   output.add(replacement);
 }