diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/.gitignore b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ae3c1726048cd06b9a143e0376ed46dd9b9a8d53 --- /dev/null +++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/.gitignore @@ -0,0 +1 @@ +/bin/ 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 f959c74e0d446bc0c3c9829482e3a06884026dd8..470704b9ba346aeb662aaf2ce2279cbc466a6b49 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 @@ -21,6 +21,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.scl.validator; import java.util.Map; import org.eclipse.emf.common.util.DiagnosticChain; +import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; @@ -28,9 +29,18 @@ import org.eclipse.emf.ecore.EValidator; import org.eclipse.emf.ecore.resource.Resource; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentRoot; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TBasicType; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TBasicTypes; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TCDC; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TDataAttribute; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TDataObject; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TFunctionalConstraint; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TFunctionalConstraints; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TLNClass; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TLNClasses; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TNS; +import fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.DAIImpl; +import fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.DAImpl; import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole; public class NSDEObjectValidator implements EValidator { @@ -51,6 +61,8 @@ public class NSDEObjectValidator implements EValidator { TFunctionalConstraint fc0 = fcs.getFunctionalConstraint().get( 0 ); AbstractRiseClipseConsole.getConsole().info( " FunctionalConstraint.titleID: " + fc0.getTitleID() ); } + + } @Override @@ -61,8 +73,27 @@ public class NSDEObjectValidator implements EValidator { @Override public boolean validate( EClass eClass, EObject eObject, DiagnosticChain diagnostics, Map< Object, Object > context ) { - AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EClass ): " + eClass.getName() ); + AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EClass ): " + eClass.getName()); + // TODO: use nsdResource to validate eObject + + DocumentRoot root = (DocumentRoot) nsdResource.getContents().get( 0 ); + TNS tns = (TNS) root.getNS(); + + if(eClass.getName().equals("DA")) { + log("\nClass " + eClass.getName()); + EList<TBasicType> tda = tns.getBasicTypes().getBasicType(); + DAImpl da = (DAImpl) eObject; + log("DA " + da.getBType()); + for(int i = 0; i < tda.size(); i++) { + if(da.getBType().equals(tda.get(i).getName())) { + log("tda " + tda.get(i).getName()); + log("true"); + return true; + } + } + } + return true; } @@ -70,8 +101,15 @@ public class NSDEObjectValidator implements EValidator { public boolean validate( EDataType eDataType, Object value, DiagnosticChain diagnostics, Map< Object, Object > context ) { AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EDataType ): " + eDataType.getName() ); + // TODO: use nsdResource to validate value + + return true; } + + public void log(String message) { + AbstractRiseClipseConsole.getConsole().info(message); + } }