Esempio n. 1
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))
                {
                }
            }
        }
Esempio n. 2
0
        public override void Execute(string[] args)
        {
            var currentDir = Directory.GetCurrentDirectory();
            var path       = currentDir + Path.DirectorySeparatorChar + Preferences.PATH;

            if (/*args.IsForce() ||*/ !File.Exists(path))
            {
                var defaultConfig = new CodeGeneratorConfig();
                var properties    = new Properties(defaultConfig.DefaultProperties);
                defaultConfig.Configure(properties);

                var propertiesString = defaultConfig.ToString();
                File.WriteAllText(path, propertiesString);

                Log.I("Created " + path);
                Log.I(propertiesString);

                new EditConfig().Execute(args);
            }
            else
            {
                Log.W(path + " already exists!");
                Log.I("Use entitas new -f to overwrite the exiting file.");
                Log.I("Use entitas edit to open the exiting file.");
            }
        }
 public void Configure(Properties properties)
 {
     _codeGeneratorConfig.Configure(properties);
     _assembliesConfig.Configure(properties);
     _ignoreNamespacesConfig.Configure(properties);
     _contextsComponentDataProvider.Configure(properties);
 }
Esempio n. 4
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);
            }
        }
Esempio n. 5
0
 public void Configure(Properties properties)
 {
     _codeGeneratorConfig.Configure(properties);
     _assembliesConfig.Configure(properties);
     foreach (var dataProvider in _dataProviders.OfType <IConfigurable>())
     {
         dataProvider.Configure(properties);
     }
     _contextsComponentDataProvider.Configure(properties);
 }
Esempio n. 6
0
        public static Type[] LoadTypesFromPlugins(Properties properties)
        {
            var config = new CodeGeneratorConfig();

            config.Configure(properties);
            var resolver = new AssemblyResolver(AppDomain.CurrentDomain, config.SearchPaths);

            resolver.LoadUnityAssemblies();
//            foreach (var path in config.Plugins)
//            {
//                resolver.Load(path);
//            }

            return(resolver.GetTypes());
        }
Esempio n. 7
0
        public static CodeGenerator CodeGeneratorFromProperties()
        {
            var properties = Preferences.LoadProperties();

            var config = new CodeGeneratorConfig();

            config.Configure(properties);

            var types = LoadTypesFromPlugins(properties);

            var dataProviders  = GetEnabledInstances <ICodeGeneratorDataProvider>(types, config.DataProviders);
            var codeGenerators = GetEnabledInstances <ICodeGenerator>(types, config.CodeGenerators);
            var postProcessors = GetEnabledInstances <ICodeGenFilePostProcessor>(types, config.PostProcessors);

            Configure(dataProviders, properties);
            Configure(codeGenerators, properties);
            Configure(postProcessors, properties);

            return(new CodeGenerator(dataProviders, codeGenerators, postProcessors));
        }