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