private void Output(string name, List <string[]> list) { if (name != null) { IPackage package = new LinePackage(list); outputer.Output(package, name); outputer.FileEnd(name); } }
public override IOutputer Run() { string name = null; outputer.Start(); collector.Collect((line, isEnd, fileName) => { string[] array = line; bool isSkip = false; string tag = null; if (fileName != name) { if (name != null) { outputer.FileEnd(name); } name = fileName; outputer.FileStart(name); } foreach (IProcessor processor in processors) { if (array == null || processor.Filter(array)) { isSkip = true; break; } array = processor.Process(array); if (processor is ITagEditor tagEditor) { tag = tagEditor.Tag(); } } if (!isSkip && array != null) { IPackage package = new LinePackage(array); package.SetTag(tag); outputer.Output(package, name); } }); if (name != null) { outputer.FileEnd(name); } outputer.Finish(); return(outputer); }