public HeterogenousBuilderGenerator(IEnumerable<Mitza.ModelGenerator.Model.Type> types)
            : base(new ComponentModel(string.Empty) { Name = "Heterogenous" })
        {
            GeneratorMode = GeneratorMode.Builder;

            if (types.Count() == 0)
            {
                return;
            }

            Console.WriteLine("Generating builder for class {0}", ClassName);
            UsingsGenerator = new UsingsGenerator(Model);
            ConstructorGenerator = new ConstructorGenerator(Model);

            CreateClass();

            UsingsGenerator.GenerateBuilderUsings();

            WriteLine("namespace {0}", Namespace);
            WriteLine("{{");
            WriteLine("    public class {0} : BuilderBase<dd4t.IComponent, ModelBase>", ClassName);
            WriteLine("    {{");
            WriteLine("        private static readonly {0} _instance = new {0}();", ClassName);
            WriteLine("        public static {0} Instance {{ get {{ return _instance; }} }}", ClassName);
            WriteLine();

            ConstructorGenerator.GenerateBuilderConstructor();

            GenerateBuildMethod(types);

            WriteLine("    }}");
            WriteLine("}}");
        }
        public EmbeddedGenerator(EmbeddedModel model)
            : base(model)
        {
            UsingsGenerator = new UsingsGenerator(model);
            ConstructorGenerator = new ConstructorGenerator(model);

            GenerateModel();
            GenerateBuilder();
        }
        public MultimediaGenerator(MultimediaModel model)
            : base(model)
        {
            UsingsGenerator = new UsingsGenerator(model);
            ConstructorGenerator = new ConstructorGenerator(model);

            GenerateModel();
            GenerateBuilder();
        }
        public ComponentGenerator(ComponentModel model)
            : base(model)
        {
            UsingsGenerator = new UsingsGenerator(model);
            ConstructorGenerator = new ConstructorGenerator(model);

            GenerateModel();
            GenerateBuilder();
        }