From 49f8313ce8de42627a6b28f10a555afa5005ab04 Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr>
Date: Mon, 20 May 2019 20:48:05 +0200
Subject: [PATCH] remove old code

---
 .../scl/validator/nsd/AnyLNValidator.java     | 173 ---------
 .../scl/validator/nsd/DOIValidator.java       | 359 ------------------
 .../scl/validator/nsd/DOValidator.java        | 145 -------
 3 files changed, 677 deletions(-)
 delete mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/AnyLNValidator.java
 delete mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOIValidator.java
 delete mode 100644 fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOValidator.java

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
deleted file mode 100644
index df3bbf2..0000000
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/AnyLNValidator.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- *  Copyright (c) 2019 CentraleSupélec & EDF.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  This file is part of the RiseClipse tool
- *  
- *  Contributors:
- *      Computer Science Department, CentraleSupélec
- *      EDF R&D
- *  Contacts:
- *      dominique.marcadet@centralesupelec.fr
- *      aurelie.dehouck-neveu@edf.fr
- *  Web site:
- *      http://wdi.supelec.fr/software/RiseClipse/
- */
-package fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.nsd;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.DiagnosticChain;
-
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass;
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject;
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass;
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.DOI;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.RiseClipseValidatorSCL;
-import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
-
-public class AnyLNValidator {
-
-    private String lnClassName;
-    private HashMap< String, DataObject > dataObjectMap;
-    private HashMap< String, DOIValidator > doiValidatorMap;
-
-    public AnyLNValidator( LNClass lnClass ) {
-        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( lnClass );
-
-        // LNClass hierarchy taken into account
-        AbstractLNClass parent = lnClass.getRefersToAbstractLNClass();
-        while( parent != null ) {
-            generateValidators( parent );
-            parent = parent.getRefersToAbstractLNClass();
-        }
-
-    }
-
-    private void generateValidators( AnyLNClass lnClass ) {
-        for( DataObject dObj : lnClass.getDataObject() ) {
-            dataObjectMap.put( dObj.getName(), dObj );
-            if( dObj.getRefersToCDC() != null ) {
-                if( ! doiValidatorMap.containsKey( dObj.getRefersToCDC().getName() )) {
-                    doiValidatorMap.put( dObj.getRefersToCDC().getName(), new DOIValidator( dObj.getRefersToCDC() ));
-                }
-            }
-        }
-    }
-
-    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 : anyLN.getDOI() ) {
-            AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDOI( " + doi.getName() + " )" );
-
-            // Test if DOI is a possible DOI in this LN
-            if( ! dataObjectMap.containsKey( doi.getName() ) ) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[NSD] DO " + doi.getName() + " in AnyLN at line " + anyLN.getLineNumber() + " not found in LNClass " + anyLN.getLnClass(),
-                        new Object[] { anyLN } ));
-                continue;
-            }
-
-            // Control of DOI presence in LN  
-            updateCompulsory( doi, checkedDO, diagnostics );
-
-            // Validation of DOI content
-            if( ! validateDOI( doi, diagnostics ) ) {
-                res = false;
-            }
-
-        }
-
-        // Verify all necessary DOI were present
-        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,
-                    "[NSD] AnyLN at line " + anyLN.getLineNumber() + " does not contain all mandatory DO from class " + anyLN.getLnClass(),
-                    new Object[] { anyLN } ));
-            res = false;
-        }
-        return res;
-    }
-
-    private boolean checkCompulsory( AnyLN ln, DataObject dataObject, HashSet< String > checkedDO, DiagnosticChain diagnostics ) {
-        switch( dataObject.getPresCond() ) {
-        case "M":
-            if( ! checkedDO.contains( dataObject.getName() ) ) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[NSD] DO " + dataObject.getName() + " is missing in LN at line " + ln.getLineNumber(),
-                        new Object[] { ln } ));
-                return false;
-            }
-            break;
-        default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: AnyLNValidator.checkCompulsory( " + dataObject.getPresCond() + " )" );
-            break;
-        }
-        return true;
-    }
-
-    private boolean updateCompulsory( DOI doi, HashSet< String > checkedDO, DiagnosticChain diagnostics ) {
-        switch( dataObjectMap.get( doi.getName() ).getPresCond() ) {
-        case "M":
-        case "O":
-            if( checkedDO.contains( doi.getName() )) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[NSD] DO " + doi + " cannot appear more than once in LN at line " + doi.getParentAnyLN().getLineNumber(),
-                        new Object[] { doi } ));
-                return false;
-            }
-            checkedDO.add( doi.getName() );
-            break;
-        case "F":
-            diagnostics.add( new BasicDiagnostic(
-                    Diagnostic.ERROR,
-                    RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                    0,
-                    "[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( " + dataObjectMap.get( doi.getName() ).getPresCond() + " )" );
-            break;
-        }
-        return true;
-    }
-
-    private boolean validateDOI( DOI doi, DiagnosticChain diagnostics ) {
-        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] found DO " + doi.getName() + " in LNClass " + lnClassName );
-
-        // DOIValidator validates DOI content
-        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
deleted file mode 100644
index 990d840..0000000
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOIValidator.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/**
- *  Copyright (c) 2019 CentraleSupélec & EDF.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  This file is part of the RiseClipse tool
- *  
- *  Contributors:
- *      Computer Science Department, CentraleSupélec
- *      EDF R&D
- *  Contacts:
- *      dominique.marcadet@centralesupelec.fr
- *      aurelie.dehouck-neveu@edf.fr
- *  Web site:
- *      http://wdi.supelec.fr/software/RiseClipse/
- */
-package fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.nsd;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.DiagnosticChain;
-
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC;
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.DAI;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.DOI;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.Val;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.RiseClipseValidatorSCL;
-import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
-
-public class DOIValidator {
-
-    private String cdcName;
-    private HashMap< String, DataAttribute > dataAttributeMap;
-
-    public DOIValidator( CDC cdc ) {
-        this.cdcName = cdc.getName();
-        this.dataAttributeMap = new HashMap<>(); // link between DAI (name) and its respective DataAttribute
-        
-        for( DataAttribute da : cdc.getDataAttribute() ) {
-            this.dataAttributeMap.put( da.getName(), da );
-        }
-    }
-
-    public boolean validateDOI( DOI doi, DiagnosticChain diagnostics ) {
-        boolean res = true;
-        HashSet< String > checkedDA = new HashSet<>();
-
-        for( DAI dai : doi.getDAI() ) {
-            AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDAI( " + dai.getName() + " ) (line " + dai.getLineNumber() + ")" );
-
-            // Test if DAI is a possible DAI in this DOI
-            if( ! dataAttributeMap.containsKey( dai.getName() ) ) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[NSD] DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") not found in CDC",
-                        new Object[] { doi, cdcName } ));
-                res = false;
-                continue;
-            }
-
-            // Control of DAI presence in DOI
-            updateCompulsory( dai, checkedDA, diagnostics );
-
-            // Validation of DAI content
-            if( ! validateDAI( dai, diagnostics ) ) {
-                res = false;
-            }
-
-        }
-
-        // Verify all necessary DAI were present
-        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,
-                    "[NSD] DOI (line " + doi.getLineNumber() + ") does not contain all mandatory DA from CDC",
-                    new Object[] { doi, cdcName } ));
-            res = false;
-        }
-        return res;
-    }
-
-    public boolean checkCompulsory( DOI doi, DataAttribute da, HashSet< String > checked, DiagnosticChain diagnostics ) {
-        switch( da.getPresCond() ) {
-        case "M":
-            if( ! checked.contains( da.getName() )) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[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( presCond: " + da.getPresCond() + " )" );
-            break;
-        }
-        return true;
-    }
-
-    public boolean updateCompulsory( DAI dai, HashSet< String > checked, DiagnosticChain diagnostics ) {
-        switch( dataAttributeMap.get( dai.getName() ).getPresCond() ) {
-        case "M":
-        case "O":
-            if( checked.contains( dai.getName() ) ) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[NSD] DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") cannot appear more than once",
-                        new Object[] { dai } ));
-                return false;
-            }
-            else {
-                checked.add( dai.getName() );
-                break;
-            }
-        case "F":
-            diagnostics.add( new BasicDiagnostic(
-                    Diagnostic.ERROR,
-                    RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                    0,
-                    "[NSD] DAI " + dai.getName() + " (line " + dai.getLineNumber() + ") is forbidden",
-                    new Object[] { dai } ));
-            return false;
-        default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOIValidator.updateCompulsory( presCond: " + dataAttributeMap.get( dai.getName() ).getPresCond() + " )" );
-            break;
-        }
-        return true;
-    }
-
-    public boolean validateDAI( DAI dai, DiagnosticChain diagnostics ) {
-
-        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 = dataAttributeMap.get( dai.getName() );
-        if( da.getTypeKind().getName().equals( "BASIC" ) ) {
-            for( Val val : dai.getVal() ) {
-                if( ! validateVal( val.getValue(), da.getType() )) {
-                    diagnostics.add( new BasicDiagnostic(
-                            Diagnostic.ERROR,
-                            RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                            0,
-                            "[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( "[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;
-    }
-
-    public boolean validateVal( String val, String type ) {
-        int v;
-        long l;
-        float f;
-        switch( type ) {
-        case "BOOLEAN":
-            return( val.equals( "0" ) || val.equals( "1" ) || val.equals( "false" ) || val.equals( "true" ) );
-        case "INT8":
-            try {
-                v = Integer.parseInt( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return v >= -128 && v <= 127;
-        case "INT16":
-            try {
-                v = Integer.parseInt( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return v >= -32768 && v <= 32767;
-        case "INT32":
-            try {
-                v = Integer.parseInt( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return v >= Integer.MIN_VALUE && v <= Integer.MAX_VALUE;
-        case "INT64":
-            try {
-                l = Long.parseLong( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return l >= Long.MIN_VALUE && l <= Long.MAX_VALUE;
-        case "INT8U":
-            try {
-                v = Integer.parseInt( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return v >= 0 && v <= 255;
-        case "INT16U":
-            try {
-                v = Integer.parseInt( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return v >= 0 && v <= 65535;
-        case "INT32U":
-            try {
-                l = Long.parseLong( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            String max = "4294967295";
-            return l >= 0 && l <= Long.parseLong( max );
-        case "FLOAT32":
-            try {
-                f = Float.parseFloat( val );
-            }
-            catch( Exception e ) {
-                return false;
-            }
-            return f >= -Float.MAX_VALUE && f <= Float.MAX_VALUE;
-        case "Octet64":
-            byte[] bytes = val.getBytes();
-            return bytes.length <= 64;
-        case "VisString64":
-            return val.length() <= 64;
-        case "VisString129":
-            return val.length() <= 129;
-        case "Unicode255":
-        case "VisString255":
-            return val.length() <= 255;
-        default:
-            return true;
-        }
-    }
-
-    @SuppressWarnings( "unused" )
-    private void testValidateVal() {
-        log( "\n--\tSTART TEST\t--\n" );
-        assertTrue( validateVal( "0", "BOOLEAN" ) );
-        assertTrue( validateVal( "1", "BOOLEAN" ) );
-        assertTrue( validateVal( "true", "BOOLEAN" ) );
-        assertTrue( validateVal( "false", "BOOLEAN" ) );
-        assertTrue( !validateVal( "2", "BOOLEAN" ) );
-        assertTrue( !validateVal( "-1", "BOOLEAN" ) );
-        assertTrue( !validateVal( "string", "BOOLEAN" ) );
-        log( "" );
-        assertTrue( validateVal( "1", "INT8" ) );
-        assertTrue( validateVal( "0", "INT8" ) );
-        assertTrue( validateVal( "-1", "INT8" ) );
-        assertTrue( validateVal( "127", "INT8" ) );
-        assertTrue( validateVal( "-128", "INT8" ) );
-        assertTrue( !validateVal( "128", "INT8" ) );
-        assertTrue( !validateVal( "-129", "INT8" ) );
-        assertTrue( !validateVal( "string", "INT8" ) );
-        assertTrue( !validateVal( "22.2", "INT8" ) );
-        log( "" );
-        assertTrue( validateVal( "32767", "INT16" ) );
-        assertTrue( validateVal( "-32768", "INT16" ) );
-        assertTrue( !validateVal( "32768", "INT16" ) );
-        assertTrue( !validateVal( "-32769", "INT16" ) );
-        log( "" );
-        assertTrue( validateVal( Integer.toString( Integer.MAX_VALUE ), "INT32" ) );
-        assertTrue( validateVal( Integer.toString( Integer.MIN_VALUE ), "INT32" ) );
-        assertTrue( !validateVal( "2147483648", "INT32" ) );
-        assertTrue( !validateVal( "-2147483649", "INT32" ) );
-        log( "" );
-        assertTrue( validateVal( Long.toString( Long.MAX_VALUE ), "INT64" ) );
-        assertTrue( validateVal( Long.toString( Long.MIN_VALUE ), "INT64" ) );
-        assertTrue( !validateVal( "9223372036854775808", "INT64" ) );
-        assertTrue( !validateVal( "-9223372036854775809", "INT64" ) );
-        log( "" );
-        assertTrue( validateVal( "0", "INT8U" ) );
-        assertTrue( validateVal( "255", "INT8U" ) );
-        assertTrue( !validateVal( "256", "INT8U" ) );
-        assertTrue( !validateVal( "-1", "INT8U" ) );
-        assertTrue( !validateVal( "-2", "INT8U" ) );
-        log( "" );
-        assertTrue( validateVal( "0", "INT16U" ) );
-        assertTrue( validateVal( "65535", "INT16U" ) );
-        assertTrue( !validateVal( "65536", "INT16U" ) );
-        assertTrue( !validateVal( "-1", "INT16U" ) );
-        assertTrue( !validateVal( "-2", "INT16U" ) );
-        log( "" );
-        assertTrue( validateVal( "0", "INT32U" ) );
-        assertTrue( validateVal( "4294967295", "INT32U" ) );
-        assertTrue( !validateVal( "4294967296", "INT32U" ) );
-        assertTrue( !validateVal( "-1", "INT32U" ) );
-        assertTrue( !validateVal( "-2", "INT32U" ) );
-        log( "" );
-        assertTrue( validateVal( "0.0", "FLOAT32" ) );
-        assertTrue( validateVal( "1.2345", "FLOAT32" ) );
-        assertTrue( validateVal( "-1.2345", "FLOAT32" ) );
-        assertTrue( validateVal( "100", "FLOAT32" ) );
-        assertTrue( validateVal( Float.toString( Float.MAX_VALUE ), "FLOAT32" ) );
-        assertTrue( validateVal( Float.toString( -Float.MAX_VALUE ), "FLOAT32" ) );
-        assertTrue( !validateVal( "3.4028236E38", "FLOAT32" ) );
-        assertTrue( !validateVal( "-3.4028236E38", "FLOAT32" ) );
-        assertTrue( !validateVal( "string", "FLOAT32" ) );
-        log( "" );
-        assertTrue( validateVal( "1234567890123456789012345678901234567890123456789012345678901234", "Octet64" ) );
-        assertTrue( !validateVal( "12345678901234567890123456789012345678901234567890123456789012345", "Octet64" ) );
-        log( "" );
-        assertTrue( validateVal( "1234567890123456789012345678901234567890123456789012345678901234", "VisString64" ) );
-        assertTrue(
-                !validateVal( "12345678901234567890123456789012345678901234567890123456789012345", "VisString64" ) );
-        log( "" );
-        assertTrue( validateVal( "1234567890123456789012345678901234567890123456789012345678901234"
-                + "12345678901234567890123456789012345678901234567890123456789012345", "VisString129" ) );
-        assertTrue( !validateVal( "1234567890123456789012345678901234567890123456789012345678901234"
-                + "123456789012345678901234567890123456789012345678901234567890123456", "VisString129" ) );
-        log( "" );
-        assertTrue( validateVal( "1234567890123456789012345678901234567890123456789012345678901234"
-                + "1234567890123456789012345678901234567890123456789012345678901234"
-                + "1234567890123456789012345678901234567890123456789012345678901234"
-                + "123456789012345678901234567890123456789012345678901234567890123", "VisString255" ) );
-        assertTrue( !validateVal( "1234567890123456789012345678901234567890123456789012345678901234"
-                + "1234567890123456789012345678901234567890123456789012345678901234"
-                + "1234567890123456789012345678901234567890123456789012345678901234"
-                + "1234567890123456789012345678901234567890123456789012345678901234", "VisString255" ) );
-    }
-
-    private void assertTrue( Boolean b ) {
-        if( b ) {
-            log( "Check" );
-        }
-        else {
-            log( "Error" );
-        }
-    }
-
-    private void log( String message ) {
-        AbstractRiseClipseConsole.getConsole().info( message );
-    }
-}
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
deleted file mode 100644
index 0f32968..0000000
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/nsd/DOValidator.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- *  Copyright (c) 2019 CentraleSupélec & EDF.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  This file is part of the RiseClipse tool
- *  
- *  Contributors:
- *      Computer Science Department, CentraleSupélec
- *      EDF R&D
- *  Contacts:
- *      dominique.marcadet@centralesupelec.fr
- *      aurelie.dehouck-neveu@edf.fr
- *  Web site:
- *      http://wdi.supelec.fr/software/RiseClipse/
- */
-package fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.nsd;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.DiagnosticChain;
-
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC;
-import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.DA;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.DO;
-import fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.RiseClipseValidatorSCL;
-import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
-
-public class DOValidator {
-
-    private String cdcName;
-    private HashMap< String, DataAttribute > dataAttributeMap;
-
-    public DOValidator( CDC cdc ) {
-        this.cdcName = cdc.getName();
-        this.dataAttributeMap = new HashMap<>(); // link between DAI (name) and its respective DataAttribute
-        
-        for( DataAttribute da : cdc.getDataAttribute() ) {
-            this.dataAttributeMap.put( da.getName(), da );
-        }
-    }
-
-    public boolean validateDO( DO do_, DiagnosticChain diagnostics ) {
-        AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDO( " + do_.getName() + " )" );
-        boolean res = true;
-        HashSet< String > checkedDA = new HashSet<>();
-
-        if( do_.getRefersToDOType() == null ) {
-            AbstractRiseClipseConsole.getConsole().warning( "[NSD] validateDO: DO " + do_.getName() + " has no RefersToDOType" );
-        }
-        else {
-            for( DA da : do_.getRefersToDOType().getDA() ) {
-                AbstractRiseClipseConsole.getConsole().verbose( "[NSD] validateDO on DA " + da.getName() + " (line " + da.getLineNumber() + ")" );
-    
-                // Test if DA is a possible DA in this DO
-                if( ! dataAttributeMap.containsKey( da.getName() ) ) {
-                    diagnostics.add( new BasicDiagnostic(
-                            Diagnostic.ERROR,
-                            RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                            0,
-                            "[NSD] DA " + da.getName() + " (line " + da.getLineNumber() + ") not found in CDC",
-                            new Object[] { do_, cdcName } ));
-                    res = false;
-                    continue;
-                }
-    
-                // Control of DAI presence in DO
-                updateCompulsory( da, checkedDA, diagnostics );
-            }
-        }
-
-        // Verify all necessary DA were present
-        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,
-                    "[NSD] DO (line " + do_.getLineNumber() + ") does not contain all mandatory DA from CDC",
-                    new Object[] { do_, cdcName } ));
-            res = false;
-        }
-        return res;
-    }
-
-    public boolean checkCompulsory( DO do_, DataAttribute da, HashSet< String > checked, DiagnosticChain diagnostics ) {
-        switch( da.getPresCond() ) {
-        case "M":
-            if( ! checked.contains( da.getName() )) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[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( presCond: " + da.getPresCond() + " )" );
-            break;
-        }
-        return true;
-    }
-
-    public boolean updateCompulsory( DA da, HashSet< String > checked, DiagnosticChain diagnostics ) {
-        switch( dataAttributeMap.get( da.getName() ).getPresCond() ) {
-        case "M":
-        case "O":
-            if( checked.contains( da.getName() ) ) {
-                diagnostics.add( new BasicDiagnostic(
-                        Diagnostic.ERROR,
-                        RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                        0,
-                        "[NSD] DA " + da.getName() + " (line " + da.getLineNumber() + ") cannot appear more than once",
-                        new Object[] { da } ));
-                return false;
-            }
-            else {
-                checked.add( da.getName() );
-                break;
-            }
-        case "F":
-            diagnostics.add( new BasicDiagnostic(
-                    Diagnostic.ERROR,
-                    RiseClipseValidatorSCL.DIAGNOSTIC_SOURCE,
-                    0,
-                    "[NSD] DA " + da.getName() + " (line " + da.getLineNumber() + ") is forbidden",
-                    new Object[] { da } ));
-            return false;
-        default:
-            AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: DOValidator.updateCompulsory( presCond: " + dataAttributeMap.get( da.getName() ).getPresCond() + " )" );
-            break;
-        }
-        return true;
-    }
-
-}
-- 
GitLab