diff --git a/TopModel.Core/ModelErrorType.cs b/TopModel.Core/ModelErrorType.cs index f7d45316..e090a0e7 100644 --- a/TopModel.Core/ModelErrorType.cs +++ b/TopModel.Core/ModelErrorType.cs @@ -182,6 +182,11 @@ public enum ModelErrorType /// TMD1028, + /// + /// Cette association sur la classe '{classe}' doit définir un rôle. + /// + TMD1029, + /// /// Le flux de données est introuvable dans le fichier ou l'une de ses références. /// diff --git a/TopModel.Core/ModelStore.cs b/TopModel.Core/ModelStore.cs index a643d85c..2bd14239 100644 --- a/TopModel.Core/ModelStore.cs +++ b/TopModel.Core/ModelStore.cs @@ -1416,6 +1416,15 @@ IEnumerable ResolveAliases(IEnumerable alps) ModelErrorType = ModelErrorType.TMD0003 }; } + + foreach (var property in classe.Properties.OfType().Where(p => p.Association == classe && string.IsNullOrEmpty(p.Role))) + { + yield return new ModelError(modelFile, $"Cette association sur la classe '{classe}' doit définir un rôle.", property.Decorator is not null ? classe.DecoratorReferences.FirstOrDefault(dr => dr.ReferenceName == property.Decorator.Name) : property.GetLocation()) + { + IsError = true, + ModelErrorType = ModelErrorType.TMD1029 + }; + } } foreach (var use in modelFile.UselessImports.Where(u => dependencies.Any(d => d.Name == u.ReferenceName)))