using System; using System.CodeDom.Compiler; using Microsoft.CSharp; using Microsoft.VisualBasic; using Microsoft.VisualC; using Xsd2Code.Library.Helpers; namespace Xsd2Code.Library { /// /// Code DOM Provider factory design pattern implementation /// /// /// Revision history: /// /// Created 2009-02-18 by Ruslan Urban /// /// public static class CodeDomProviderFactory { /// /// Get Code DOM provider /// /// /// public static CodeDomProvider GetProvider(GeneratorParams generatorParams) { return GetProvider(generatorParams.Language); } /// /// Get Code DOM provider /// /// 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("Code provider for language {0} is not supported", Utility.GetEnumDescription(language))); } } } }