From 7ef3d9d91cffb02e7437a684514c4cf31ac7ad4b Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr>
Date: Sat, 30 Mar 2019 19:09:27 +0100
Subject: [PATCH] clean code

---
 .../scl/validator/AnyLNValidator.java         |  14 +-
 .../iec61850/scl/validator/DOIValidator.java  |  26 +-
 .../scl/validator/NsdEObjectValidator.java    | 319 +-----------------
 3 files changed, 23 insertions(+), 336 deletions(-)

diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/AnyLNValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/AnyLNValidator.java
index aa7dbb3..5534900 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/AnyLNValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/AnyLNValidator.java
@@ -53,7 +53,7 @@ public class AnyLNValidator {
         for( DataObject dObj : lnClass.getDataObject() ) {
             this.doMap.put( dObj.getName(), dObj );
             if( dObj.getRefersToCDC() != null ) {
-                if( !cdcMap.containsKey( dObj.getRefersToCDC().getName() ) ) {
+                if( ! cdcMap.containsKey( dObj.getRefersToCDC().getName() )) {
                     this.cdcMap.put( dObj.getRefersToCDC().getName(), new DOIValidator( dObj.getRefersToCDC() ));
                 }
             }
@@ -64,7 +64,7 @@ public class AnyLNValidator {
         HashSet< String > checkedDO = new HashSet<>();
 
         for( DOI doi : ln.getDOI() ) {
-            AbstractRiseClipseConsole.getConsole().info( "validateDOI( " + doi.getName() + " )" );
+            AbstractRiseClipseConsole.getConsole().verbose( "validateDOI( " + doi.getName() + " )" );
 
             // Test if DOI is a possible DOI in this LN
             if( !this.doMap.containsKey( doi.getName() ) ) {
@@ -78,7 +78,7 @@ public class AnyLNValidator {
             this.updateCompulsory( doi.getName(), presCond, checkedDO );
 
             // Validation of DOI content
-            if( !validateDOI( doi ) ) {
+            if( ! validateDOI( doi ) ) {
                 return false;
             }
 
@@ -98,7 +98,7 @@ public class AnyLNValidator {
     public boolean checkCompulsory( String name, String presCond, HashSet< String > checked ) {
         switch( presCond ) {
         case "M":
-            if( !checked.contains( name ) ) {
+            if( ! checked.contains( name ) ) {
                 AbstractRiseClipseConsole.getConsole().error( "DO " + name + " is missing" );
                 return false;
             }
@@ -127,15 +127,11 @@ public class AnyLNValidator {
 
     public boolean validateDOI( DOI doi ) {
 
-        AbstractRiseClipseConsole.getConsole().info( "found DO " + doi.getName() + " in LNClass " + this.lnClass );
+        AbstractRiseClipseConsole.getConsole().verbose( "found DO " + doi.getName() + " in LNClass " + this.lnClass );
 
         // DOIValidator validates DOI content
         String cdc = this.doMap.get( doi.getName() ).getRefersToCDC().getName();
         return cdcMap.get( cdc ).validateDOI( doi );
     }
 
-    public 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/DOIValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/DOIValidator.java
index 66f39f0..a8820c4 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/DOIValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/DOIValidator.java
@@ -31,7 +31,6 @@ public class DOIValidator {
 
     private String cdc;
     private HashMap< String, DataAttribute > daMap;
-    //private static Boolean test = false;
 
     public DOIValidator( CDC cdc ) {
         this.cdc = cdc.getName();
@@ -39,20 +38,16 @@ public class DOIValidator {
         for( DataAttribute da : cdc.getDataAttribute() ) {
             this.daMap.put( da.getName(), da );
         }
-        /*if(!test) {
-        	testValidateVal();
-        }
-        test = true;*/
     }
 
     public boolean validateDOI( DOI doi ) {
         HashSet< String > checkedDA = new HashSet<>();
 
         for( DAI dai : doi.getDAI() ) {
-            AbstractRiseClipseConsole.getConsole().info( "validateDAI( " + dai.getName() + " )" );
+            AbstractRiseClipseConsole.getConsole().verbose( "validateDAI( " + dai.getName() + " )" );
 
             // Test if DAI is a possible DAI in this DOI
-            if( !this.daMap.containsKey( dai.getName() ) ) {
+            if( ! this.daMap.containsKey( dai.getName() ) ) {
                 AbstractRiseClipseConsole.getConsole().error( "DA " + dai.getName() + " not found in CDC " + this.cdc );
                 return false;
             }
@@ -62,14 +57,14 @@ public class DOIValidator {
             this.updateCompulsory( dai.getName(), presCond, checkedDA );
 
             // Validation of DAI content
-            if( !validateDAI( dai ) ) {
+            if( ! validateDAI( dai ) ) {
                 return false;
             }
 
         }
 
         // Verify all necessary DAI were present
-        if( !this.daMap.entrySet().stream()
+        if( ! this.daMap.entrySet().stream()
                 .map( x -> checkCompulsory( x.getKey(), x.getValue().getPresCond(), checkedDA ) )
                 .reduce( ( a, b ) -> a && b ).get() ) {
             AbstractRiseClipseConsole.getConsole().error( "DO does not contain all mandatory DA from CDC " + this.cdc );
@@ -110,19 +105,18 @@ public class DOIValidator {
 
     public boolean validateDAI( DAI dai ) {
 
-        AbstractRiseClipseConsole.getConsole().info( "found DA " + dai.getName() + " in CDC " + this.cdc );
+        AbstractRiseClipseConsole.getConsole().verbose( "found DA " + dai.getName() + " in CDC " + this.cdc );
 
         // DataAttributes that are BASIC have a BasicType which describes allowed Val of DA
         DataAttribute da = this.daMap.get( dai.getName() );
         if( da.getTypeKind().getName().equals( "BASIC" ) ) {
             for( Val val : dai.getVal() ) {
-                if( !validateVal( val.getValue(), da.getType() ) ) {
+                if( ! validateVal( val.getValue(), da.getType() ) ) {
                     AbstractRiseClipseConsole.getConsole().error( "Val " + val.getValue() + " of DA " + dai.getName() +
                             " is not of type " + da.getType() );
-                    ;
                     return false;
                 }
-                AbstractRiseClipseConsole.getConsole().info( "Val " + val.getValue() + " of DA " + dai.getName() +
+                AbstractRiseClipseConsole.getConsole().verbose( "Val " + val.getValue() + " of DA " + dai.getName() +
                         " is of type " + da.getType() );
             }
         }
@@ -217,7 +211,7 @@ public class DOIValidator {
         }
     }
 
-    public void testValidateVal() {
+    private void testValidateVal() {
         log( "\n--\tSTART TEST\t--\n" );
         assertTrue( validateVal( "0", "BOOLEAN" ) );
         assertTrue( validateVal( "1", "BOOLEAN" ) );
@@ -302,7 +296,7 @@ public class DOIValidator {
                 + "1234567890123456789012345678901234567890123456789012345678901234", "VisString255" ) );
     }
 
-    public void assertTrue( Boolean b ) {
+    private void assertTrue( Boolean b ) {
         if( b ) {
             log( "Check" );
         }
@@ -311,7 +305,7 @@ public class DOIValidator {
         }
     }
 
-    public void log( String message ) {
+    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/NsdEObjectValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdEObjectValidator.java
index 26df2e6..7123466 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdEObjectValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdEObjectValidator.java
@@ -48,7 +48,7 @@ public class NsdEObjectValidator implements EValidator {
                 } ).get();
     }
 
-    public HashMap< String, AnyLNValidator > generateValidators( LNClass lnClass ) {
+    private HashMap< String, AnyLNValidator > generateValidators( LNClass lnClass ) {
         HashMap< String, AnyLNValidator > lnMap = new HashMap<>();
         lnMap.put( lnClass.getName(), new AnyLNValidator( lnClass ) );
         return lnMap;
@@ -60,8 +60,7 @@ public class NsdEObjectValidator implements EValidator {
     }
 
     @Override
-    public boolean validate( EClass eClass, EObject eObject, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
+    public boolean validate( EClass eClass, EObject eObject, DiagnosticChain diagnostics, Map< Object, Object > context ) {
 
         if( this.lnMap == null ) {
             this.initializeValidationData();
@@ -78,9 +77,8 @@ public class NsdEObjectValidator implements EValidator {
     }
 
     @Override
-    public boolean validate( EDataType eDataType, Object value, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        //AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EDataType ): " + eDataType.getName() );
+    public boolean validate( EDataType eDataType, Object value, DiagnosticChain diagnostics, Map< Object, Object > context ) {
+        AbstractRiseClipseConsole.getConsole().info( "NOT IMPLEMENTED: NSDEObjectValidator.validate( EDataType ): " + eDataType.getName() );
 
         // TODO: use nsdResource to validate value
 
@@ -88,319 +86,18 @@ public class NsdEObjectValidator implements EValidator {
     }
 
     public boolean validateLN( AnyLN ln ) {
-        AbstractRiseClipseConsole.getConsole().info( "" );
-        AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validateLN( " + ln.getLnClass() + " )" );
+        AbstractRiseClipseConsole.getConsole().verbose( "" );
+        AbstractRiseClipseConsole.getConsole().verbose( "NSDEObjectValidator.validateLN( " + ln.getLnClass() + " )" );
 
         //LN has valid LNClass
-        if( !this.lnMap.containsKey( ln.getLnClass() ) ) {
+        if( ! this.lnMap.containsKey( ln.getLnClass() ) ) {
             AbstractRiseClipseConsole.getConsole().error( "LNClass " + ln.getLnClass() + " not found in NSD files" );
             return false;
         }
-        AbstractRiseClipseConsole.getConsole().info( "found LNClass " + ln.getLnClass() + " in NSD files" );
+        AbstractRiseClipseConsole.getConsole().verbose( "found LNClass " + ln.getLnClass() + " in NSD files" );
 
         //AnyLNValidator validates LN content
         return lnMap.get( ln.getLnClass() ).validateLN( ln );
     }
 
-    /*
-    public boolean validateLN(AnyLN ln) {
-    	AbstractRiseClipseConsole.getConsole().info("");
-    	AbstractRiseClipseConsole.getConsole().info("");
-        AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validateLN( " + ln.getLnClass() + " )" );
-        
-        if( ! this.lnMap.containsKey(ln.getLnClass()) ) {
-            AbstractRiseClipseConsole.getConsole().error( "LNClass " + ln.getLnClass() + " not found in NSD files" );
-        	return false; 
-        }
-        AbstractRiseClipseConsole.getConsole().info( "found LNClass " + ln.getLnClass() + " in NSD files" );
-    
-        HashSet<String> checkedDO = new HashSet<>();
-        
-        /*
-        Optional< LNClass > lnClassFound = nsdResourceSet.getLNClassStream().filter( lNClass -> lNClass.getName().equals( ln.getLnClass() )).findAny();
-        if( ! lnClassFound.isPresent() ) {
-            AbstractRiseClipseConsole.getConsole().error( "LNClass " + ln.getLnClass() + " not found in NSD files" );
-        	return false; 
-        }
-        AbstractRiseClipseConsole.getConsole().info( "found LNClass " + ln.getLnClass() + " in NSD files" );
-       
-        
-        // lnClassFound contains DataObject which describes allowed DOI in LN        
-    	for( DOI doi : ln.getDOI() ) {
-    		
-    		if(!this.lnMap.get(ln.getLnClass()).containsKey(doi.getName())) {
-                AbstractRiseClipseConsole.getConsole().error( "DO " + doi.getName() + " not found in LNClass " +  ln.getLnClass());
-    			return false;
-    		}
-    		
-    		String presCond = this.lnMap.get(ln.getLnClass()).get(doi.getName()); 
-    		switch(presCond) {
-    		case "M":
-    		case "O":
-    			if(checkedDO.contains(doi.getName())) {
-    				AbstractRiseClipseConsole.getConsole().error("DO " + doi.getName() + " cannot appear more than once");
-    				return false;
-    			} else {
-    				checkedDO.add(doi.getName());
-    				break;
-    			}
-    		case "F":
-                AbstractRiseClipseConsole.getConsole().error("DO " + doi.getName() + " is forbidden");
-    			return false;
-    		}
-    		
-    	    if( ! validateDO(doi) ){
-    	    	return false;
-    	    }
-    	}
-        // TODO: check that compulsory DataObject in lnClassFound are present in ln 
-    	if(!this.lnMap.get(ln.getLnClass()).entrySet().stream().map(x -> checkCompulsory(x.getKey(), x.getValue(), checkedDO)).reduce((a, b) -> a && b).get()) {
-            AbstractRiseClipseConsole.getConsole().error( "LN does not contain all mandatory DO from class " + ln.getLnClass());
-            return false;
-    	}
-    	return true;
-    }
-    */
-
-    /*
-    public boolean checkCompulsory(String dObj, String presCond, HashSet<String> checked) {
-    	switch(presCond) {
-    	case "M":
-    		if(!checked.contains(dObj)) {
-    			AbstractRiseClipseConsole.getConsole().error( "DO "+ dObj + " is missing");
-    			return false;
-    		}
-    	}
-    	return true;
-    }
-    */
-
-    /*
-    public boolean validateDO(DOI doi) {
-        return true;
-    }
-    */
-
-    /*
-    public boolean validateDO(EList<DOI> lnDOI, LNClass lnClassFound) {
-    	for( DOI doi : lnDOI ) {
-            Optional< DataObject > dataObjectFound = lnClassFound.getDataObject().stream().filter( dataObject -> dataObject.getName().equals( doi.getName()) ).findAny();
-            AbstractRiseClipseConsole.getConsole().info(" ");
-            AbstractRiseClipseConsole.getConsole().info( "validateDO( " + doi.getName() + " )" );
-            if( ! dataObjectFound.isPresent() ) {
-                AbstractRiseClipseConsole.getConsole().error( "DO " + doi.getName() + " not found in LNClass " +  lnClassFound.getName());
-            	return false;
-            }
-            
-            try {
-            	presenceDO = updatePresenceDO(presenceDO, dataObjectFound.get());
-            } catch(Exception e) {
-            	AbstractRiseClipseConsole.getConsole().error( "LN contains forbidden DO for class " + lnClassFound.getName());
-            	return false;
-            }
-            
-            // dataObjectFound refers to a CDC which describes allowed DAI in DOI
-            CDC cdcFound = dataObjectFound.get().getRefersToCDC();
-            AbstractRiseClipseConsole.getConsole().info( "found DO " + doi.getName() + " (CDC: " + cdcFound.getName() + ") in LNClass " +  lnClassFound.getName());
-            if( ! validateDA(doi.getDAI(), cdcFound) ) {
-            	return false;
-            }
-            
-            // TODO: check that compulsory DataAttribute in cdcFound are present in doi
-    	}
-    	
-    	if(presenceDO.get("mandatory").size() > 0) {
-            AbstractRiseClipseConsole.getConsole().error( "LN does not contain all mandatory DO from class " + lnClassFound.getName());
-    		return false;
-    	}
-    	
-    	return true;
-    }
-    
-    public HashMap <String, HashSet<String>> generatePresenceDO(LNClass lnClass) {
-    	HashMap <String, HashSet<String>> sets = new HashMap<>();
-    	HashSet<String> mandatory = new HashSet<>();
-    	HashSet<String> forbidden = new HashSet<>();
-    	for(DataObject dObj : lnClass.getDataObject()) {
-        	switch(dObj.getPresCond()) {
-        	case "M":
-        	case "AtLeastOne":
-    			mandatory.add(dObj.getName());
-    			break;
-        	case "F":
-    			forbidden.add(dObj.getName());
-        		break;
-    		default:
-    			break;
-        	}
-    	}
-    	sets.put("mandatory", mandatory);
-    	sets.put("forbidden", forbidden);
-    	return sets;
-    }
-    
-    public HashMap <String, HashSet<String>> updatePresenceDO(HashMap <String, HashSet<String>> sets, DataObject dObj) throws Exception {
-    	HashSet<String> mandatory = sets.get("mandatory");
-    	HashSet<String> forbidden = sets.get("forbidden");
-    	switch(dObj.getPresCond()) {
-    	case "M":
-    	case "AtLeastOne":
-    		mandatory.remove(dObj.getName());
-    		break;
-    	case "AtMostOne":
-    		if(forbidden.contains(dObj.getName())) {
-    			throw new Exception("Forbidden");
-    		}
-    		forbidden.add(dObj.getName());
-    		break;
-    	case "F":
-    		throw new Exception("Forbidden");
-    	default:
-    		break;
-    	}
-    	return sets;
-    }
-    */
-
-    /*
-    public boolean validateDA(EList<DAI> doiDAI, CDC cdcFound) {
-    	HashMap<String, HashSet<String>> presenceDA = generatePresenceDA(cdcFound);
-    	for( DAI dai : doiDAI ) {
-            AbstractRiseClipseConsole.getConsole().info(" ");
-        	AbstractRiseClipseConsole.getConsole().info( "validateDA( " + dai.getName() + " )" );
-            Optional< DataAttribute > dataAttributeFound = cdcFound.getDataAttribute().stream().filter( dataAttribute -> dataAttribute.getName().equals( dai.getName() ) ).findAny();
-            
-            if( ! dataAttributeFound.isPresent() ) {
-            	AbstractRiseClipseConsole.getConsole().error( "DA " + dai.getName() + " not found in CDC " +  cdcFound.getName());
-            	return false;
-            }
-            AbstractRiseClipseConsole.getConsole().info( "found DA " + dai.getName() + " in CDC " +  cdcFound.getName());
-            
-            try {
-            	presenceDA = updatePresenceDA(presenceDA, dataAttributeFound.get());
-            } catch(Exception e) {
-            	AbstractRiseClipseConsole.getConsole().error( "DO contains forbidden DA for class " + cdcFound.getName());
-            	return false;
-            }
-            
-            // dataAttributeFound that are BASIC have a BasicType which describes allowed Val of DA
-            if(dataAttributeFound.get().getTypeKind().getName().equals("BASIC")) {
-                for(Val val : dai.getVal()) {
-                	if( ! validateVal(val.getValue(), dataAttributeFound.get().getType()) ) {
-                		AbstractRiseClipseConsole.getConsole().error( "Val " + val.getValue() + " of DA " +  dai.getName() + 
-                				" is not of type " + dataAttributeFound.get().getType());;
-                		return false;
-                	}
-                	AbstractRiseClipseConsole.getConsole().info( "Val " +  val.getValue() + " of DA " +  dai.getName() + 
-            				" is of type " + dataAttributeFound.get().getType());
-                }                	
-            }
-    	}    
-    	
-    	if(presenceDA.get("mandatory").size() > 0) {
-            AbstractRiseClipseConsole.getConsole().error( "DO does not contain all mandatory DA from class " + cdcFound.getName());
-    		return false;
-    	}
-    	
-    	return true;
-    }
-    
-    public HashMap <String, HashSet<String>> generatePresenceDA(CDC cdc) {
-    	HashMap <String, HashSet<String>> sets = new HashMap<>();
-    	HashSet<String> mandatory = new HashSet<>();
-    	HashSet<String> forbidden = new HashSet<>();
-    	for(DataAttribute da : cdc.getDataAttribute()) {
-        	switch(da.getPresCond()) {
-        	case "M":
-        	case "AtLeastOne":
-    			mandatory.add(da.getName());
-    			break;
-        	case "F":
-    			forbidden.add(da.getName());
-        		break;
-    		default:
-    			break;
-        	}
-    	}
-    	sets.put("mandatory", mandatory);
-    	sets.put("forbidden", forbidden);
-    	return sets;
-    }
-    
-    public HashMap <String, HashSet<String>> updatePresenceDA(HashMap <String, HashSet<String>> sets, DataAttribute da) throws Exception {
-    	HashSet<String> mandatory = sets.get("mandatory");
-    	HashSet<String> forbidden = sets.get("forbidden");
-    	switch(da.getPresCond()) {
-    	case "M":
-    	case "AtLeastOne":
-    		mandatory.remove(da.getName());
-    		break;
-    	case "AtMostOne":
-    		if(forbidden.contains(da.getName())) {
-    			throw new Exception("Forbidden");
-    		}
-    		forbidden.add(da.getName());
-    		break;
-    	case "F":
-    		throw new Exception("Forbidden");
-    	default:
-    		break;
-    	}
-    	return sets;
-    }
-    */
-
-    /*
-    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":
-    		v = Integer.parseInt(val);
-    		return v >= -128 && v <= 127;
-    	case "INT16":
-    		v = Integer.parseInt(val);
-    		return v >= -32768 && v <= 32767;
-    	case "INT32":
-    		v = Integer.parseInt(val);
-    		return v >= Integer.MIN_VALUE && v <= Integer.MAX_VALUE;
-    	case "INT64":
-    		l = Long.parseLong(val);
-    		return l >= Long.MIN_VALUE && l <= Long.MAX_VALUE;
-    	case "INT8U":
-    		v = Integer.parseInt(val);
-    		return v >= 0 && v <= 255;
-    	case "INT16U":
-    		v = Integer.parseInt(val);
-    		return v >= 0 && v <= 65535;
-    	case "INT32U":
-    		l = Long.parseLong(val);
-            String max = "4294967295";
-    		return l >= 0 && l <= Long.parseLong(max);
-    	case "FLOAT32":
-    		f = Float.parseFloat(val);
-    		return f >= Float.MIN_VALUE && f <= Float.MAX_VALUE;
-    	case "Octet64":
-    		byte[] bytes = val.getBytes();
-    		return bytes.length <= 64;
-    	case "VisString64":
-    		return val.length() <= 255;
-    	case "VisString129":
-    		return val.length() <= 129;
-    	case "Unicode255":
-    	case "VisString255":
-    		return val.length() <= 255;
-    	default:
-    		return false;
-    	}
-    }
-    */
-
-    public void log( String message ) {
-        AbstractRiseClipseConsole.getConsole().info( message );
-    }
-
 }
-- 
GitLab