diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DataObjectPresenceConditionValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DataObjectPresenceConditionValidator.java index b86fecec48cf82ccc589a3dfb24979c69e822b5a..2f2f0499f07c79af8c7c4b42731b3d052def4a00 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DataObjectPresenceConditionValidator.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DataObjectPresenceConditionValidator.java @@ -591,21 +591,28 @@ public class DataObjectPresenceConditionValidator { .filter( d -> "dataNs".equals( d.getName() )) .findAny(); if( da.isPresent() ) { - String value = " without value"; if( da.get().getVal().size() > 0 ) { - value = " with value ["; + String value = ""; for( Val v : da.get().getVal() ) { value += " " + v.getValue(); } - value += " ]"; + diagnostics.add( new BasicDiagnostic( + Diagnostic.INFO, + RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE, + 0, + "[NSD validation] DO " + do_.getName() + " in LNodeType (line " + do_.getParentLNodeType().getLineNumber() + + " is specific because it has DA \"dataNs\" with value [" + value + " ]", + new Object[] { do_ } )); + return true; } diagnostics.add( new BasicDiagnostic( - Diagnostic.INFO, + Diagnostic.ERROR, RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE, 0, - "[NSD validation] DO " + do_.getName() + " in LNodeType (line " + do_.getParentLNodeType().getLineNumber() + " is specific and has DA \"dataNs\"" + value, + "[NSD validation] DO " + do_.getName() + " in LNodeType (line " + do_.getParentLNodeType().getLineNumber() + + " is specific because it has DA \"dataNs\" but value is missing", new Object[] { do_ } )); - return true; + return false; } } diagnostics.add( new BasicDiagnostic(