public override List <String> doRule(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaElement.Stereotype == TGGModelingMain.TggRuleStereotype)
            {
                SQLPackage rulesPackage     = repository.GetPackageByID(eaElement.PackageID);
                SQLPackage tggSchemaPackage = repository.GetPackageByID(rulesPackage.ParentID);
                foreach (SQLElement corrType in tggSchemaPackage.Elements)
                {
                    if (corrType.Stereotype == TGGModelingMain.TggCorrespondenceTypeStereotype)
                    {
                        if (corrType.Name == eaElement.Name)
                        {
                            results.Add("TGG Rule name shouldnt be equal to TGG CorrespondenceType name");
                        }
                    }
                }

                if (!ConsistencyUtil.isValidTGGRuleName(eaElement.Name))
                {
                    results.Add("TGG Rule name should consist of the following letters: a-z,A-Z,0-9,_,-");
                }
            }
            return(results);
        }
        public override List <String> doRule(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaElement.Stereotype == TGGModelingMain.TggCorrespondenceTypeStereotype)
            {
                SQLPackage pkg = repository.GetPackageByID(eaElement.PackageID);
                foreach (SQLElement elem in pkg.Elements)
                {
                    if (elem.Name == eaElement.Name && elem.ElementID != eaElement.ElementID)
                    {
                        results.Add("name of CorrespondenceType must be unique");
                    }
                }
            }



            if (eaElement.MetaType == ECOREModelingMain.EClassStereotype)
            {
                SQLPackage pkg = repository.GetPackageByID(eaElement.PackageID);
                foreach (SQLElement elem in pkg.Elements)
                {
                    if (elem.Name == eaElement.Name && elem.ElementID != eaElement.ElementID)
                    {
                        results.Add("name of classes in a package must be unique");
                    }
                }
            }
            return(results);
        }
        public override List <string> doRule(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository)
        {
            if (eaElement.Stereotype == ECOREModelingMain.EClassStereotype)
            {
                List <String> results = new List <string>();

                SQLPackage pkg = repository.GetPackageByID(eaElement.PackageID);

                if (eaElement.ParentID != 0 || pkg.Element == null || (pkg.Element.Stereotype != ECOREModelingMain.EPackageStereotype && pkg.Element.Stereotype != TGGModelingMain.TggSchemaPackageStereotype))
                {
                    results.Add("EClasses can only be contained by EPackages");
                }
                return(results);
            }
            return(new List <string>());
        }
示例#4
0
        public override List <String> doRule(SQLPackage eaPackage, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaPackage.ParentID != 0)
            {
                SQLPackage parentPackage = repository.GetPackageByID(eaPackage.ParentID);
                if (parentPackage.ParentID == 0)
                {
                    String eapFilename = Path.GetFileNameWithoutExtension(repository.ConnectionString);
                    if (eapFilename == eaPackage.Name)
                    {
                        results.Add("No package should be named as the containing eap file");
                    }
                }
            }
            return(results);
        }
        public override List <String> doRule(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaElement.Stereotype == ECOREModelingMain.EClassStereotype)
            {
                SQLPackage containingPackage = repository.GetPackageByID(eaElement.PackageID);
                if (containingPackage.Name == eaElement.Name)
                {
                    results.Add("EClasses shouldnt have the same name as their containing package");
                }

                SQLPackage metamodel = EAUtil.getOutermostPackage(eaElement, repository);
                if (metamodel.Name + "Package" == eaElement.Name)
                {
                    results.Add("No EClass should be named \"<NameOfProject>Package\" as this is reserved for EMF by convention.");
                }
            }
            return(results);
        }
        public override List <String> doRule(SQLPackage eaPackage, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaPackage.ParentID != 0)
            {
                SQLPackage parentPackage = repository.GetPackageByID(eaPackage.ParentID);
                if (parentPackage.ParentID == 0)
                {
                    foreach (SQLPackage model in repository.Models)
                    {
                        foreach (SQLPackage project in model.Packages)
                        {
                            if (project.Name == eaPackage.Name && project.PackageGUID != eaPackage.PackageGUID)
                            {
                                results.Add("No two project packages should have the same name");
                            }
                        }
                    }
                }
            }
            return(results);
        }