// -------------------------------------------------------------------------------------------------------------------- // // N/A // // // Code DOM Provider factory design pattern implementation // // -------------------------------------------------------------------------------------------------------------------- namespace Xsd2Code.Library.Helpers { using System; using System.CodeDom.Compiler; using Microsoft.CSharp; using Microsoft.VisualBasic; using Microsoft.VisualC; /// /// Code DOM Provider factory design pattern implementation /// public static class CodeDomProviderFactory { /// /// Get Code DOM provider /// /// The language. /// CodeDom provider according language. public static CodeDomProvider GetProvider(GenerationLanguage language) { switch (language) { case GenerationLanguage.CSharp: return new CSharpCodeProvider(); case GenerationLanguage.VisualBasic: return new VBCodeProvider(); case GenerationLanguage.VisualCpp: return new CppCodeProvider(); default: throw new NotImplementedException( string.Format(Properties.Resources.UnsupportedLanguageCodeDomProvider, Utility.GetEnumDescription(language))); } } } }