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); } }
static Dictionary <string, string> GetConfigurables(Type[] types, CodeGeneratorConfig config) { return(CodeGeneratorUtil.GetConfigurables( CodeGeneratorUtil.GetUsed <ICodeGeneratorDataProvider>(types, config.DataProviders), CodeGeneratorUtil.GetUsed <ICodeGenerator>(types, config.CodeGenerators), CodeGeneratorUtil.GetUsed <ICodeGenFilePostProcessor>(types, config.PostProcessors) )); }