Example #1
0
        public static DB_EA.Database getDatabase(TSF_EA.Element element)
        {
            //first get the database based on the attribute
            var databasePackage = element.getAllOwners().OfType <Package>().FirstOrDefault(x => x.stereotypeNames.Any(y => y.ToLower() == "database"));

            //no database found, return empty
            if (databasePackage == null)
            {
                return(null);
            }
            string databaseType = databasePackage.taggedValues.FirstOrDefault(x => x.name.ToLower() == "dbms")?.tagValue.ToString();

            //no database type found. We cannot create the database
            if (string.IsNullOrEmpty(databaseType))
            {
                return(null);
            }
            //create the factory and database
            // TODO: add caching?
            var dbFactory = getFactory(databaseType, element.EAModel, new StrategyFactory());

            return(dbFactory?.createDataBase(databasePackage));
        }