예제 #1
0
        public override void Execute(string[] args)
        {
            if (AssertProperties())
            {
                var properties = LoadProperties();
                var config     = new CodeGeneratorConfig();
                config.Configure(properties);

                Log.I(config.ToString());

                Type[] types = null;
                Dictionary <string, string> configurables = null;

                try
                {
                    types         = CodeGeneratorUtil.LoadTypesFromPlugins(properties);
                    configurables = CodeGeneratorUtil.GetConfigurables(
                        CodeGeneratorUtil.GetUsed <ICodeGeneratorDataProvider>(types, config.DataProviders),
                        CodeGeneratorUtil.GetUsed <ICodeGenerator>(types, config.CodeGenerators),
                        CodeGeneratorUtil.GetUsed <ICodeGenFilePostProcessor>(types, config.PostProcessors)
                        );
                }
                catch (Exception ex)
                {
                    PrintKeyStatus(config.DefaultProperties.Keys.ToArray(), properties);
                    throw ex;
                }

                var requiredKeys = config.DefaultProperties.Merge(configurables).Keys.ToArray();

                PrintKeyStatus(requiredKeys, properties);
                PrintPluginStatus(types, config);
            }
        }
예제 #2
0
        public override void Execute(string[] args)
        {
            if (AssertProperties())
            {
                var properties = LoadProperties();
                var config     = new CodeGeneratorConfig();
                config.Configure(properties);

                ForceAddKeys(config.DefaultProperties, properties);

                Type[] types = null;

                try
                {
                    types = CodeGeneratorUtil.LoadTypesFromPlugins(properties);
                    GetConfigurables(types, config);
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                var askedRemoveKeys = new HashSet <string>();
                var askedAddKeys    = new HashSet <string>();
                while (Fix(askedRemoveKeys, askedAddKeys, types, config, properties))
                {
                }
            }
        }
예제 #3
0
 public override void Execute(string[] args)
 {
     if (AssertProperties())
     {
         PrintTypes(CodeGeneratorUtil.LoadTypesFromPlugins(LoadProperties()));
     }
 }