/// <summary>
        /// Adds a feedback edge.
        /// </summary>
        /// <param name="transform">The new feedback <see cref="Transformation{TElement}"/>.</param>
        public void AddFeedbackEdge(Transformation <T> transform)
        {
            if (transform.Parallelism != Parallelism)
            {
                throw new UnSupportedOperationException(
                          $"Parallelism of the feedback stream must match the parallelism of the original stream. Parallelism of original stream: {Parallelism}; parallelism of feedback stream: {transform.Parallelism}. Parallelism can be modified using DataStream#setParallelism() method");
            }

            FeedbackEdges.Add(transform);
        }
        public void AddFeedbackEdge(Transformation <F> transform)
        {
            if (transform.Parallelism != Parallelism)
            {
                throw new UnSupportedOperationException(
                          "Parallelism of the feedback stream must match the parallelism of the original" +
                          " stream. Parallelism of original stream: " + Parallelism +
                          "; parallelism of feedback stream: " + transform.Parallelism);
            }

            FeedbackEdges.Add(transform);
        }