/// <summary> /// Constructor that accepts <paramref name="originalPipeline"/>, which processors /// must be "modified" and a <paramref name="configuration"/> /// which defines the modification rules. /// </summary> /// <param name="originalPipeline"> /// A pipeline, which processors will be substituted by configuration. /// </param> /// <param name="configuration"> /// A configuration that defines rules of substitution. /// </param> public ModifiedPipeline(IPipeline originalPipeline, IModificationConfiguration configuration) { OriginalPipeline = originalPipeline ?? throw new ArgumentNullException(PipelineMustBeSpecified); Configuration = configuration ?? throw new ArgumentNullException(ConfigurationMustBeSpecified); }
/// <summary> /// Creates a new pipeline which will apply <see cref="IModificationConfiguration.GetModifications(IProcessor)"/> /// method on each processor of the original pipeline. /// </summary> /// <param name="pipeline"> /// An original pipeline to be modified by <paramref name="configuration"/>. /// </param> /// <param name="configuration"> /// A configuration that describes which processors should be used instead of original. /// </param> /// <returns> /// A new instance of pipeline, that applies <paramref name="configuration"/> to the processors /// of an original pipeline. /// </returns> public static IPipeline Modify(this IPipeline pipeline, IModificationConfiguration configuration) { return(new ModifiedPipeline(pipeline, configuration).Fix(false)); }