From 8dc09b54c0e082cfd990c8bdec7620544a7cd753 Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique Marcadet@centralesupelec.fr>
Date: Wed, 1 May 2019 23:24:26 +0800
Subject: [PATCH] small changes to clean/update

---
 .../scl/validator/nsd/AnyLNValidator.java     | 62 +++++++++----------
 .../scl/validator/nsd/DOIValidator.java       | 47 +++++++-------
 .../scl/validator/nsd/DOValidator.java        | 40 ++++++------
 .../scl/validator/nsd/LNodeTypeValidator.java | 52 ++++++++--------
 .../validator/nsd/NsdEObjectValidator.java    | 28 ++++-----
 5 files changed, 115 insertions(+), 114 deletions(-)

diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/AnyLNValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/AnyLNValidator.java
index 6e54715..df3bbf2 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/AnyLNValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/AnyLNValidator.java
@@ -36,53 +36,54 @@ import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 
 public class AnyLNValidator {
 
-    private String lnClass;
-    private HashMap< String, DataObject > doMap;
-    private HashMap< String, DOIValidator > cdcMap;
+    private String lnClassName;
+    private HashMap< String, DataObject > dataObjectMap;
+    private HashMap< String, DOIValidator > doiValidatorMap;
 
     public AnyLNValidator( LNClass lnClass ) {
-        this.lnClass = lnClass.getName();
-        this.doMap = new HashMap<>(); // link between DOI (name) and its respective DataObject
-        this.cdcMap = new HashMap<>(); // link between CDC (name) and its respective DOIValidator
+        this.lnClassName = lnClass.getName();
+        this.dataObjectMap = new HashMap<>(); // link between DOI (name) and its respective DataObject
+        this.doiValidatorMap = new HashMap<>(); // link between CDC (name) and its respective DOIValidator
         
-        generateValidators( doMap, cdcMap, lnClass );
+        generateValidators( lnClass );
 
         // LNClass hierarchy taken into account
         AbstractLNClass parent = lnClass.getRefersToAbstractLNClass();
         while( parent != null ) {
-            generateValidators( doMap, cdcMap, parent );
+            generateValidators( parent );
             parent = parent.getRefersToAbstractLNClass();
         }
 
     }
 
-    private void generateValidators( HashMap< String, DataObject > doMap, HashMap< String, DOIValidator > cdcMap, AnyLNClass lnClass ) {
+    private void generateValidators( AnyLNClass lnClass ) {
         for( DataObject dObj : lnClass.getDataObject() ) {
-            doMap.put( dObj.getName(), dObj );
+            dataObjectMap.put( dObj.getName(), dObj );
             if( dObj.getRefersToCDC() != null ) {
-                if( ! cdcMap.containsKey( dObj.getRefersToCDC().getName() )) {
-                    cdcMap.put( dObj.getRefersToCDC().getName(), new DOIValidator( dObj.getRefersToCDC() ));
+                if( ! doiValidatorMap.containsKey( dObj.getRefersToCDC().getName() )) {
+                    doiValidatorMap.put( dObj.getRefersToCDC().getName(), new DOIValidator( dObj.getRefersToCDC() ));
                 }
             }
         }
     }
 
-    public boolean validateLN( AnyLN ln, DiagnosticChain diagnostics ) {
+    public boolean validateAnyLN( AnyLN anyLN, DiagnosticChain diagnostics ) {
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateAnyLN( " + anyLN.getLnClass() + " )" );
         boolean res = true;
 
         HashSet< String > checkedDO = new HashSet<>();
 
-        for( DOI doi : ln.getDOI() ) {
-            AbstractRiseClipseConsole.getConsole().verbose( "validateDOI( " + doi.getName() + " )" );
+        for( DOI doi : anyLN.getDOI() ) {
+            AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDOI( " + doi.getName() + " )" );
 
             // Test if DOI is a possible DOI in this LN
-            if( ! doMap.containsKey( doi.getName() ) ) {
+            if( ! dataObjectMap.containsKey( doi.getName() ) ) {
                 diagnostics.add( new BasicDiagnostic(
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DO " + doi.getName() + " in LN at line " + ln.getLineNumber() + " not found in LNClass " + ln.getLnClass(),
-                        new Object[] { ln } ));
+                        "[NSD] DO " + doi.getName() + " in AnyLN at line " + anyLN.getLineNumber() + " not found in LNClass " + anyLN.getLnClass(),
+                        new Object[] { anyLN } ));
                 continue;
             }
 
@@ -97,15 +98,15 @@ public class AnyLNValidator {
         }
 
         // Verify all necessary DOI were present
-        if( ! doMap.values().stream()
-                .map( x -> checkCompulsory( ln, x, checkedDO, diagnostics ))
+        if( ! dataObjectMap.values().stream()
+                .map( x -> checkCompulsory( anyLN, x, checkedDO, diagnostics ))
                 .reduce( ( a, b ) -> a && b ).get() ) {
             diagnostics.add( new BasicDiagnostic(
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "LN at line " + ln.getLineNumber() + " does not contain all mandatory DO from class " + ln.getLnClass(),
-                    new Object[] { ln } ));
+                    "[NSD] AnyLN at line " + anyLN.getLineNumber() + " does not contain all mandatory DO from class " + anyLN.getLnClass(),
+                    new Object[] { anyLN } ));
             res = false;
         }
         return res;
@@ -119,7 +120,7 @@ public class AnyLNValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DO " + dataObject.getName() + " is missing in LN at line " + ln.getLineNumber(),
+                        "[NSD] DO " + dataObject.getName() + " is missing in LN at line " + ln.getLineNumber(),
                         new Object[] { ln } ));
                 return false;
             }
@@ -132,7 +133,7 @@ public class AnyLNValidator {
     }
 
     private boolean updateCompulsory( DOI doi, HashSet< String > checkedDO, DiagnosticChain diagnostics ) {
-        switch( doMap.get( doi.getName() ).getPresCond() ) {
+        switch( dataObjectMap.get( doi.getName() ).getPresCond() ) {
         case "M":
         case "O":
             if( checkedDO.contains( doi.getName() )) {
@@ -140,7 +141,7 @@ public class AnyLNValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DO " + doi + " cannot appear more than once in LN at line " + doi.getParentAnyLN().getLineNumber(),
+                        "[NSD] DO " + doi + " cannot appear more than once in LN at line " + doi.getParentAnyLN().getLineNumber(),
                         new Object[] { doi } ));
                 return false;
             }
@@ -151,23 +152,22 @@ public class AnyLNValidator {
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "DO " + doi + " is forbidden in LN at line " + doi.getParentAnyLN().getLineNumber(),
+                    "[NSD] DO " + doi + " is forbidden in LN at line " + doi.getParentAnyLN().getLineNumber(),
                     new Object[] { doi } ));
             return false;
         default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: AnyLNValidator.updateCompulsory( " + doMap.get( doi.getName() ).getPresCond() + " )" );
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: AnyLNValidator.updateCompulsory( " + dataObjectMap.get( doi.getName() ).getPresCond() + " )" );
             break;
         }
         return true;
     }
 
     private boolean validateDOI( DOI doi, DiagnosticChain diagnostics ) {
-
-        AbstractRiseClipseConsole.getConsole().verbose( "found DO " + doi.getName() + " in LNClass " + lnClass );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] found DO " + doi.getName() + " in LNClass " + lnClassName );
 
         // DOIValidator validates DOI content
-        String cdc = doMap.get( doi.getName() ).getRefersToCDC().getName();
-        return cdcMap.get( cdc ).validateDOI( doi, diagnostics );
+        String cdc = dataObjectMap.get( doi.getName() ).getRefersToCDC().getName();
+        return doiValidatorMap.get( cdc ).validateDOI( doi, diagnostics );
     }
 
 }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOIValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOIValidator.java
index 42cdef8..990d840 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOIValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOIValidator.java
@@ -35,15 +35,15 @@ import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 
 public class DOIValidator {
 
-    private String cdc;
-    private HashMap< String, DataAttribute > daMap;
+    private String cdcName;
+    private HashMap< String, DataAttribute > dataAttributeMap;
 
     public DOIValidator( CDC cdc ) {
-        this.cdc = cdc.getName();
-        this.daMap = new HashMap<>(); // link between DAI (name) and its respective DataAttribute
+        this.cdcName = cdc.getName();
+        this.dataAttributeMap = new HashMap<>(); // link between DAI (name) and its respective DataAttribute
         
         for( DataAttribute da : cdc.getDataAttribute() ) {
-            this.daMap.put( da.getName(), da );
+            this.dataAttributeMap.put( da.getName(), da );
         }
     }
 
@@ -52,16 +52,16 @@ public class DOIValidator {
         HashSet< String > checkedDA = new HashSet<>();
 
         for( DAI dai : doi.getDAI() ) {
-            AbstractRiseClipseConsole.getConsole().verbose( "validateDAI( " + dai.getName() + " ) (line" + dai.getLineNumber() + ")" );
+            AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDAI( " + dai.getName() + " ) (line " + dai.getLineNumber() + ")" );
 
             // Test if DAI is a possible DAI in this DOI
-            if( ! daMap.containsKey( dai.getName() ) ) {
+            if( ! dataAttributeMap.containsKey( dai.getName() ) ) {
                 diagnostics.add( new BasicDiagnostic(
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DAI " + dai.getName() + " (line" + dai.getLineNumber() + ") not found in CDC",
-                        new Object[] { doi, cdc } ));
+                        "[NSD] DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") not found in CDC",
+                        new Object[] { doi, cdcName } ));
                 res = false;
                 continue;
             }
@@ -77,15 +77,15 @@ public class DOIValidator {
         }
 
         // Verify all necessary DAI were present
-        if( ! daMap.values().stream()
+        if( ! dataAttributeMap.values().stream()
                 .map( x -> checkCompulsory( doi, x, checkedDA, diagnostics ) )
                 .reduce( ( a, b ) -> a && b ).get() ) {
             diagnostics.add( new BasicDiagnostic(
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "DOI (line " + doi.getLineNumber() + ") does not contain all mandatory DA from CDC ",
-                    new Object[] { doi, cdc } ));
+                    "[NSD] DOI (line " + doi.getLineNumber() + ") does not contain all mandatory DA from CDC",
+                    new Object[] { doi, cdcName } ));
             res = false;
         }
         return res;
@@ -99,20 +99,20 @@ public class DOIValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DA " + da.getName() + " not found in DOI (line " + doi.getLineNumber() + ")",
+                        "[NSD] DA " + da.getName() + " not found in DOI (line " + doi.getLineNumber() + ")",
                         new Object[] { da } ));
                 return false;
             }
             break;
         default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.checkCompulsory( " + da.getPresCond() + " )" );
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.checkCompulsory( presCond: " + da.getPresCond() + " )" );
             break;
         }
         return true;
     }
 
     public boolean updateCompulsory( DAI dai, HashSet< String > checked, DiagnosticChain diagnostics ) {
-        switch( daMap.get( dai.getName() ).getPresCond() ) {
+        switch( dataAttributeMap.get( dai.getName() ).getPresCond() ) {
         case "M":
         case "O":
             if( checked.contains( dai.getName() ) ) {
@@ -120,7 +120,7 @@ public class DOIValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") cannot appear more than once",
+                        "[NSD] DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") cannot appear more than once",
                         new Object[] { dai } ));
                 return false;
             }
@@ -133,11 +133,11 @@ public class DOIValidator {
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") is forbidden",
+                    "[NSD] DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") is forbidden",
                     new Object[] { dai } ));
             return false;
         default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.updateCompulsory( " + daMap.get( dai.getName() ).getPresCond() + " )" );
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.updateCompulsory( presCond: " + dataAttributeMap.get( dai.getName() ).getPresCond() + " )" );
             break;
         }
         return true;
@@ -145,10 +145,10 @@ public class DOIValidator {
 
     public boolean validateDAI( DAI dai, DiagnosticChain diagnostics ) {
 
-        AbstractRiseClipseConsole.getConsole().verbose( "found DA " + dai.getName() + " in CDC " + cdc );
+        AbstractRiseClipseConsole.getConsole().verbose( "found DA " + dai.getName() + " in CDC " + cdcName );
 
         // DataAttributes that are BASIC have a BasicType which describes allowed Val of DA
-        DataAttribute da = daMap.get( dai.getName() );
+        DataAttribute da = dataAttributeMap.get( dai.getName() );
         if( da.getTypeKind().getName().equals( "BASIC" ) ) {
             for( Val val : dai.getVal() ) {
                 if( ! validateVal( val.getValue(), da.getType() )) {
@@ -156,14 +156,17 @@ public class DOIValidator {
                             Diagnostic.ERROR,
                             RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                             0,
-                            "Val " + val.getValue() + " (" + dai.getLineNumber() + ") of DA " + dai.getName() + " is not of type " + da.getType(),
+                            "[NSD] Val " + val.getValue() + " (" + dai.getLineNumber() + ") of DA " + dai.getName() + " is not of type " + da.getType(),
                             new Object[] { dai, val } ));
                      return false;
                 }
-                AbstractRiseClipseConsole.getConsole().verbose( "Val " + val.getValue() + " (" + dai.getLineNumber() + ") of DA " + dai.getName() +
+                AbstractRiseClipseConsole.getConsole().verbose( "[NSD] Val " + val.getValue() + " (" + dai.getLineNumber() + ") of DA " + dai.getName() +
                         " is of type " + da.getType() );
             }
         }
+        else {
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.validateDAI( kind: " + da.getTypeKind().getName() + " )" );
+        }
 
         return true;
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOValidator.java
index 9e61f5d..0f32968 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOValidator.java
@@ -34,38 +34,38 @@ import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 
 public class DOValidator {
 
-    private String cdc;
-    private HashMap< String, DataAttribute > daMap;
+    private String cdcName;
+    private HashMap< String, DataAttribute > dataAttributeMap;
 
     public DOValidator( CDC cdc ) {
-        this.cdc = cdc.getName();
-        this.daMap = new HashMap<>(); // link between DAI (name) and its respective DataAttribute
+        this.cdcName = cdc.getName();
+        this.dataAttributeMap = new HashMap<>(); // link between DAI (name) and its respective DataAttribute
         
         for( DataAttribute da : cdc.getDataAttribute() ) {
-            this.daMap.put( da.getName(), da );
+            this.dataAttributeMap.put( da.getName(), da );
         }
     }
 
     public boolean validateDO( DO do_, DiagnosticChain diagnostics ) {
-        AbstractRiseClipseConsole.getConsole().verbose( "validateDO( " + do_.getName() + " )" );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDO( " + do_.getName() + " )" );
         boolean res = true;
         HashSet< String > checkedDA = new HashSet<>();
 
         if( do_.getRefersToDOType() == null ) {
-            AbstractRiseClipseConsole.getConsole().warning( "validateDO: DO " + do_.getName() + " has no RefersToDOType" );
+            AbstractRiseClipseConsole.getConsole().warning( "[NSD] validateDO: DO " + do_.getName() + " has no RefersToDOType" );
         }
         else {
             for( DA da : do_.getRefersToDOType().getDA() ) {
-                AbstractRiseClipseConsole.getConsole().verbose( "validateDO on DA " + da.getName() + " (line" + da.getLineNumber() + ")" );
+                AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDO on DA " + da.getName() + " (line " + da.getLineNumber() + ")" );
     
                 // Test if DA is a possible DA in this DO
-                if( ! daMap.containsKey( da.getName() ) ) {
+                if( ! dataAttributeMap.containsKey( da.getName() ) ) {
                     diagnostics.add( new BasicDiagnostic(
                             Diagnostic.ERROR,
                             RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                             0,
-                            "DA " + da.getName() + " (line" + da.getLineNumber() + ") not found in CDC",
-                            new Object[] { do_, cdc } ));
+                            "[NSD] DA " + da.getName() + " (line " + da.getLineNumber() + ") not found in CDC",
+                            new Object[] { do_, cdcName } ));
                     res = false;
                     continue;
                 }
@@ -76,15 +76,15 @@ public class DOValidator {
         }
 
         // Verify all necessary DA were present
-        if( ! daMap.values().stream()
+        if( ! dataAttributeMap.values().stream()
                 .map( x -> checkCompulsory( do_, x, checkedDA, diagnostics ) )
                 .reduce( ( a, b ) -> a && b ).get() ) {
             diagnostics.add( new BasicDiagnostic(
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "DO (line " + do_.getLineNumber() + ") does not contain all mandatory DA from CDC ",
-                    new Object[] { do_, cdc } ));
+                    "[NSD] DO (line " + do_.getLineNumber() + ") does not contain all mandatory DA from CDC",
+                    new Object[] { do_, cdcName } ));
             res = false;
         }
         return res;
@@ -98,20 +98,20 @@ public class DOValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DA " + da.getName() + " not found in DO (line " + do_.getLineNumber() + ")",
+                        "[NSD] DA " + da.getName() + " not found in DO (line " + do_.getLineNumber() + ")",
                         new Object[] { da } ));
                 return false;
             }
             break;
         default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOValidator.checkCompulsory( " + da.getPresCond() + " )" );
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOValidator.checkCompulsory( presCond: " + da.getPresCond() + " )" );
             break;
         }
         return true;
     }
 
     public boolean updateCompulsory( DA da, HashSet< String > checked, DiagnosticChain diagnostics ) {
-        switch( daMap.get( da.getName() ).getPresCond() ) {
+        switch( dataAttributeMap.get( da.getName() ).getPresCond() ) {
         case "M":
         case "O":
             if( checked.contains( da.getName() ) ) {
@@ -119,7 +119,7 @@ public class DOValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DA " + da.getName() + " (line " + da.getLineNumber() + ") cannot appear more than once",
+                        "[NSD] DA " + da.getName() + " (line " + da.getLineNumber() + ") cannot appear more than once",
                         new Object[] { da } ));
                 return false;
             }
@@ -132,11 +132,11 @@ public class DOValidator {
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "DA " + da.getName() + " (line " + da.getLineNumber() + ") is forbidden",
+                    "[NSD] DA " + da.getName() + " (line " + da.getLineNumber() + ") is forbidden",
                     new Object[] { da } ));
             return false;
         default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.updateCompulsory( " + daMap.get( da.getName() ).getPresCond() + " )" );
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOValidator.updateCompulsory( presCond: " + dataAttributeMap.get( da.getName() ).getPresCond() + " )" );
             break;
         }
         return true;
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/LNodeTypeValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/LNodeTypeValidator.java
index b288c58..f9c0e31 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/LNodeTypeValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/LNodeTypeValidator.java
@@ -36,52 +36,53 @@ import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 
 public class LNodeTypeValidator {
 
-    private String lnClass;
-    private HashMap< String, DataObject > doMap;
-    private HashMap< String, DOValidator > cdcMap;
+    private String lnClassName;
+    private HashMap< String, DataObject > dataObjectMap;
+    private HashMap< String, DOValidator > doValidatorMap;
 
     public LNodeTypeValidator( LNClass lnClass ) {
-        this.lnClass = lnClass.getName();
-        this.doMap = new HashMap<>(); // link between DOI (name) and its respective DataObject
-        this.cdcMap = new HashMap<>(); // link between CDC (name) and its respective DOIValidator
+        this.lnClassName = lnClass.getName();
+        this.dataObjectMap = new HashMap<>(); // link between DOI (name) and its respective DataObject
+        this.doValidatorMap = new HashMap<>(); // link between CDC (name) and its respective DOIValidator
         
-        generateValidators( doMap, cdcMap, lnClass );
+        generateValidators( lnClass );
 
         // LNClass hierarchy taken into account
         AbstractLNClass parent = lnClass.getRefersToAbstractLNClass();
         while( parent != null ) {
-            generateValidators( doMap, cdcMap, parent );
+            generateValidators( parent );
             parent = parent.getRefersToAbstractLNClass();
         }
 
     }
 
-    private void generateValidators( HashMap< String, DataObject > doMap, HashMap< String, DOValidator > cdcMap, AnyLNClass lnClass ) {
+    private void generateValidators( AnyLNClass lnClass ) {
         for( DataObject dObj : lnClass.getDataObject() ) {
-            doMap.put( dObj.getName(), dObj );
+            dataObjectMap.put( dObj.getName(), dObj );
             if( dObj.getRefersToCDC() != null ) {
-                if( ! cdcMap.containsKey( dObj.getRefersToCDC().getName() )) {
-                    cdcMap.put( dObj.getRefersToCDC().getName(), new DOValidator( dObj.getRefersToCDC() ));
+                if( ! doValidatorMap.containsKey( dObj.getRefersToCDC().getName() )) {
+                    doValidatorMap.put( dObj.getRefersToCDC().getName(), new DOValidator( dObj.getRefersToCDC() ));
                 }
             }
         }
     }
 
     public boolean validateLNodeType( LNodeType lNodeType, DiagnosticChain diagnostics ) {
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateLNodeType( " + lNodeType.getId() + " )" );
         boolean res = true;
 
         HashSet< String > checkedDO = new HashSet<>();
 
         for( DO do_ : lNodeType.getDO() ) {
-            AbstractRiseClipseConsole.getConsole().verbose( "validateDOI( " + do_.getName() + " )" );
+            AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDO( " + do_.getName() + " )" );
 
             // Test if DOI is a possible DOI in this LN
-            if( ! doMap.containsKey( do_.getName() ) ) {
+            if( ! dataObjectMap.containsKey( do_.getName() ) ) {
                 diagnostics.add( new BasicDiagnostic(
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DO " + do_.getName() + " in LN at line " + lNodeType.getLineNumber() + " not found in LNClass " + lNodeType.getLnClass(),
+                        "[NSD] DO " + do_.getName() + " in LN at line " + lNodeType.getLineNumber() + " not found in LNClass " + lNodeType.getLnClass(),
                         new Object[] { lNodeType } ));
                 continue;
             }
@@ -97,14 +98,14 @@ public class LNodeTypeValidator {
         }
 
         // Verify all necessary DOI were present
-        if( ! doMap.values().stream()
+        if( ! dataObjectMap.values().stream()
                 .map( x -> checkCompulsory( lNodeType, x, checkedDO, diagnostics ))
                 .reduce( ( a, b ) -> a && b ).get() ) {
             diagnostics.add( new BasicDiagnostic(
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "LNodeType at line " + lNodeType.getLineNumber() + " does not contain all mandatory DO from class " + lNodeType.getLnClass(),
+                    "[NSD] LNodeType at line " + lNodeType.getLineNumber() + " does not contain all mandatory DO from class " + lNodeType.getLnClass(),
                     new Object[] { lNodeType } ));
             res = false;
         }
@@ -119,7 +120,7 @@ public class LNodeTypeValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DO " + dataObject.getName() + " is missing in LN at line " + lNodeType.getLineNumber(),
+                        "[NSD] DO " + dataObject.getName() + " is missing in LN at line " + lNodeType.getLineNumber(),
                         new Object[] { lNodeType } ));
                 return false;
             }
@@ -132,7 +133,7 @@ public class LNodeTypeValidator {
     }
 
     private boolean updateCompulsory( DO do_, HashSet< String > checkedDO, DiagnosticChain diagnostics ) {
-        switch( doMap.get( do_.getName() ).getPresCond() ) {
+        switch( dataObjectMap.get( do_.getName() ).getPresCond() ) {
         case "M":
         case "O":
             if( checkedDO.contains( do_.getName() )) {
@@ -140,7 +141,7 @@ public class LNodeTypeValidator {
                         Diagnostic.ERROR,
                         RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                         0,
-                        "DO " + do_ + " cannot appear more than once in LN at line " + do_.getParentLNodeType().getLineNumber(),
+                        "[NSD] DO " + do_ + " cannot appear more than once in LN at line " + do_.getParentLNodeType().getLineNumber(),
                         new Object[] { do_ } ));
                 return false;
             }
@@ -151,23 +152,22 @@ public class LNodeTypeValidator {
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "DO " + do_ + " is forbidden in LN at line " + do_.getParentLNodeType().getLineNumber(),
+                    "[NSD] DO " + do_ + " is forbidden in LN at line " + do_.getParentLNodeType().getLineNumber(),
                     new Object[] { do_ } ));
             return false;
         default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: AnyLNValidator.updateCompulsory( " + doMap.get( do_.getName() ).getPresCond() + " )" );
+            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: AnyLNValidator.updateCompulsory( " + dataObjectMap.get( do_.getName() ).getPresCond() + " )" );
             break;
         }
         return true;
     }
 
     private boolean validateDO( DO do_, DiagnosticChain diagnostics ) {
-
-        AbstractRiseClipseConsole.getConsole().verbose( "found DO " + do_.getName() + " in LNClass " + lnClass );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] found DO " + do_.getName() + " in LNClass " + lnClassName );
 
         // DOIValidator validates DOI content
-        String cdc = doMap.get( do_.getName() ).getRefersToCDC().getName();
-        return cdcMap.get( cdc ).validateDO( do_, diagnostics );
+        String cdc = dataObjectMap.get( do_.getName() ).getRefersToCDC().getName();
+        return doValidatorMap.get( cdc ).validateDO( do_, diagnostics );
     }
 
 }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/NsdEObjectValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/NsdEObjectValidator.java
index 730555c..b428306 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/NsdEObjectValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/NsdEObjectValidator.java
@@ -69,9 +69,9 @@ public class NsdEObjectValidator implements EValidator {
     }
 
     private HashMap< String, LNodeTypeValidator > generateLNodeTypeValidators( LNClass lnClass ) {
-        HashMap< String, LNodeTypeValidator > lNodeTypeMap = new HashMap<>();
-        lNodeTypeMap.put( lnClass.getName(), new LNodeTypeValidator( lnClass ));
-        return lNodeTypeMap;
+        HashMap< String, LNodeTypeValidator > lntMap = new HashMap<>();
+        lntMap.put( lnClass.getName(), new LNodeTypeValidator( lnClass ));
+        return lntMap;
     }
 
     @Override
@@ -100,7 +100,7 @@ public class NsdEObjectValidator implements EValidator {
 
             @Override
             public Boolean defaultCase( EObject object ) {
-                AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: NsdEObjectValidator.validate( " + object.eClass().getName() + " )" );
+                //AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: NsdEObjectValidator.validate( " + object.eClass().getName() + " )" );
                 return true;
             }
             
@@ -119,8 +119,7 @@ public class NsdEObjectValidator implements EValidator {
     }
 
     private boolean validateAnyLN( AnyLN ln, DiagnosticChain diagnostics ) {
-        AbstractRiseClipseConsole.getConsole().verbose( "" );
-        AbstractRiseClipseConsole.getConsole().verbose( "NsdEObjectValidator.validateLN( " + ln.getLnClass() + " )" );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] NsdEObjectValidator.validateAnyLN( " + ln.getLnClass() + " )" );
 
         // Check that LN has valid LNClass
         if( ! this.anyLNValidatorMap.containsKey( ln.getLnClass() )) {
@@ -128,33 +127,32 @@ public class NsdEObjectValidator implements EValidator {
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "LNClass " + ln.getLnClass() + " not found in NSD files for LN at line " + ln.getLineNumber(),
+                    "[NSD] LNClass " + ln.getLnClass() + " not found for AnyLN at line " + ln.getLineNumber(),
                     new Object[] { ln } ));
             return false;
         }
-        AbstractRiseClipseConsole.getConsole().verbose( "found LNClass " + ln.getLnClass() + " in NSD files for LN at line " + ln.getLineNumber() );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] found LNClass " + ln.getLnClass() + " for AnyLN at line " + ln.getLineNumber() );
 
         // AnyLNValidator validates LN content
-        return anyLNValidatorMap.get( ln.getLnClass() ).validateLN( ln, diagnostics );
+        return anyLNValidatorMap.get( ln.getLnClass() ).validateAnyLN( ln, diagnostics );
     }
 
     protected Boolean validateLNodeType( LNodeType lNodeType, DiagnosticChain diagnostics ) {
-        AbstractRiseClipseConsole.getConsole().verbose( "" );
-        AbstractRiseClipseConsole.getConsole().verbose( "NsdEObjectValidator.validateLNodeType( " + lNodeType.getLnClass() + " )" );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] NsdEObjectValidator.validateLNodeType( " + lNodeType.getLnClass() + " )" );
 
-        // Check that LN has valid LNClass
+        // Check that LNodeType has valid LNClass
         if( ! this.anyLNValidatorMap.containsKey( lNodeType.getLnClass() )) {
             diagnostics.add( new BasicDiagnostic(
                     Diagnostic.ERROR,
                     RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
                     0,
-                    "LNClass " + lNodeType.getLnClass() + " not found in NSD files for LN at line " + lNodeType.getLineNumber(),
+                    "[NSD] LNClass " + lNodeType.getLnClass() + " not found for LNodeType at line " + lNodeType.getLineNumber(),
                     new Object[] { lNodeType } ));
             return false;
         }
-        AbstractRiseClipseConsole.getConsole().verbose( "found LNClass " + lNodeType.getLnClass() + " in NSD files for LN at line " + lNodeType.getLineNumber() );
+        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] LNClass " + lNodeType.getLnClass() + " found for LNodeType at line " + lNodeType.getLineNumber() );
 
-        // AnyLNValidator validates LN content
+        // LNodeTypeValidator validates LNodeType content
         return lNodeTypeValidatorMap.get( lNodeType.getLnClass() ).validateLNodeType( lNodeType, diagnostics );
     }
 
-- 
GitLab