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>()); }
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); }