"Fossies" - the Fresh Open Source Software Archive

Member "selenium-selenium-4.8.1/third_party/dotnet/devtools/src/generator/CodeGen/CodeGeneratorBase.cs" (17 Feb 2023, 1931 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C# source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 namespace OpenQA.Selenium.DevToolsGenerator.CodeGen
    2 {
    3     using Microsoft.Extensions.DependencyInjection;
    4     using OpenQA.Selenium.DevToolsGenerator.ProtocolDefinition;
    5     using System;
    6     using System.Collections.Generic;
    7 
    8     /// <summary>
    9     /// Represents a base implementation of a code generator.
   10     /// </summary>
   11     /// <typeparam name="T"></typeparam>
   12     public abstract class CodeGeneratorBase<T> : ICodeGenerator<T>
   13         where T : IDefinition
   14     {
   15         private readonly IServiceProvider m_serviceProvider;
   16         private readonly Lazy<CodeGenerationSettings> m_settings;
   17         private readonly Lazy<TemplatesManager> m_templatesManager;
   18 
   19         /// <summary>
   20         /// Gets the service provider associated with the generator.
   21         /// </summary>
   22         public IServiceProvider ServiceProvider
   23         {
   24             get { return m_serviceProvider; }
   25         }
   26 
   27         /// <summary>
   28         /// Gets the code generation settings associated with the generator.
   29         /// </summary>
   30         public CodeGenerationSettings Settings
   31         {
   32             get { return m_settings.Value; }
   33         }
   34 
   35         /// <summary>
   36         /// Gets a template manager associated with the generator.
   37         /// </summary>
   38         public TemplatesManager TemplatesManager
   39         {
   40             get { return m_templatesManager.Value; }
   41         }
   42 
   43         protected CodeGeneratorBase(IServiceProvider serviceProvider)
   44         {
   45             m_serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
   46             m_settings = new Lazy<CodeGenerationSettings>(() => m_serviceProvider.GetRequiredService<CodeGenerationSettings>());
   47             m_templatesManager = new Lazy<TemplatesManager>(() => m_serviceProvider.GetRequiredService<TemplatesManager>());
   48         }
   49 
   50         public abstract IDictionary<string, string> GenerateCode(T item, CodeGeneratorContext context);
   51     }
   52 }