/// <summary>
        /// Creates the specified pipeline.
        /// </summary>
        public ControlFlowBase Create(PipelineControlFlowElement pipeline)
        {
            Assume.NotNull(pipeline, nameof(pipeline));

            var children = createChildren(pipeline);

            return(new PipelineControlFlow(children));
        }
 /// <summary>
 /// Indicates whether the current object is equal to another object of the same type.
 /// </summary>
 /// <param name="other">An object to compare with this object.</param>
 /// <returns>
 /// true if the current object is equal to the <paramref name="other" /> parameter; otherwise, false.
 /// </returns>
 public Boolean Equals(PipelineControlFlowElement other)
 {
     return(Equals(other as ControlFlowElementBase) &&
            Children.SequenceEqual(other.Children));
 }