From 4823f9f072ee1d85169e33d4b22bf7ecf523accf Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr>
Date: Fri, 26 Jul 2019 16:55:12 +0200
Subject: [PATCH] Check EnumType id

Error if EnumType id is not the same as NSD Enumeration name when it
should (same literals)
---
 .../scl/validator/nsd/EnumerationValidator.java       | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.validator/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/EnumerationValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.validator/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/EnumerationValidator.java
index fafe1a0..02ca61c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.validator/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/EnumerationValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.validator/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/EnumerationValidator.java
@@ -238,7 +238,16 @@ public class EnumerationValidator extends TypeValidator {
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
                     "[NSD validation] EnumType (id = " + enumType.getId() + ") at line " + enumType.getLineNumber()
-                        + " must use a different id because it extends or restricts the standard Enumeration",
+                        + " must use a different id because it extends or restricts the standard Enumeration " + getName(),
+                    new Object[] { enumType } ));
+        }
+        else if( ! sameName && res ) {
+            diagnostics.add( new BasicDiagnostic(
+                    Diagnostic.ERROR,
+                    RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
+                    0,
+                    "[NSD validation] EnumType (id = " + enumType.getId() + ") at line " + enumType.getLineNumber()
+                        + " must use " + getName() + " as id because it is identical to the standard Enumeration",
                     new Object[] { enumType } ));
         }
         
-- 
GitLab