private void FinalizeOutputBuilder() { if (_outputBuilderUsers == 1) { _outputBuilder = null; } _outputBuilderUsers--; }
private void InitializeOutputBuilder(string name) { if (_outputBuilder != null) { Debug.Assert(_outputBuilderUsers >= 1); _outputBuilderUsers++; return; } Debug.Assert(_outputBuilderUsers == 0); var outputFile = _config.OutputLocation; var isMethodClass = name.Equals(_config.MethodClassName); if (_config.GenerateMultipleFiles) { outputFile = Path.Combine(outputFile, $"{name}.cs"); } else if (isMethodClass) { outputFile = Path.ChangeExtension(outputFile, $"{_config.MethodClassName}{Path.GetExtension(outputFile)}"); } if (!_outputBuilders.TryGetValue(outputFile, out _outputBuilder)) { _outputBuilder = new OutputBuilder(outputFile, _config, isMethodClass); _outputBuilders.Add(outputFile, _outputBuilder); } else { _outputBuilder.WriteLine(); } _outputBuilderUsers++; Debug.Assert(outputFile.Equals(_outputBuilder.OutputFile)); }