public CSharpCodeGenerator(
IBuildSystem buildSystem,
CodeNamespace codeNamespace,
IMemberBuilderFactory testBuilders,
ICodeGeneratorParameters configuration)
{
Guard.NotNull(() => buildSystem, buildSystem);
this.buildSystem = buildSystem;
Guard.NotNull(() => configuration, configuration);
// this.configuration = configuration;
string outputDirectory = configuration.OutputDirectory;
// Null arguments will not be accepted
if (codeNamespace == null)
{
throw new ArgumentNullException(
"codeNamespace",
Exceptions.ParameterCannotBeNull);
}
if (outputDirectory == null)
{
throw new ArgumentNullException(
"outputDirectory",
Exceptions.ParameterCannotBeNull);
}
// Ensure that the output directory is not empty
if (outputDirectory.Length == 0)
{
throw new ArgumentException(
Exceptions.StringCannotBeEmpty,
"outputDirectory");
}
// Ensure that the output directory is valid
if (!this.buildSystem.DirectoryExists(outputDirectory))
{
throw new ApplicationException(Exceptions.DirectoryCannotBeFound);
}
this.codeNamespace = codeNamespace;
this.OutputDirectory = outputDirectory;
}