// --------------------------------------------------------------------------------------------------------------------
//
// 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)));
}
}
}
}