/// <inheritdoc /> internal override void InterInitialContainer(IPipeLine flowContainer) { LineContainer = flowContainer; WatchProxy=flowContainer.GetWatchProxy(); if (this.Equals(flowContainer.EndPipe)) return; if (NextPipe == null) throw new ArgumentNullException(nameof(NextPipe), $"Flow({flowContainer.PipeCode})需要有明确的EndPipe,且所有的分支路径最终需到达此EndPipe"); NextPipe.InterInitialContainer(flowContainer); }
internal override void InterFormatLink(string prePipeCode, bool isSelf = false) { if (!string.IsNullOrEmpty(prePipeCode)) { var links = LineContainer.GetLinkDics(); var linkKey = string.Concat(prePipeCode, "_", PipeCode); if (links.ContainsKey(linkKey)) { return; } links.Add(linkKey,new PipeLink() { pre_pipe_code = prePipeCode, pipe_code = PipeCode }); } if (NextPipe == null || Equals(LineContainer.EndPipe)) return ; NextPipe.InterFormatLink(PipeCode,false); }