diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/META-INF/MANIFEST.MF b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/META-INF/MANIFEST.MF index 70b6e48c79d2496fd6da9978220082ed9e30a0d1..88a3e4ba1a3f035b7388d8cc366ab83dfa73c9b2 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/META-INF/MANIFEST.MF +++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/META-INF/MANIFEST.MF @@ -17,7 +17,9 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.ocl.xtext.oclstdlib, fr.centralesupelec.edf.riseclipse.iec61850.scl, fr.centralesupelec.edf.riseclipse.iec61850.scl.edit, + fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities, fr.centralesupelec.edf.riseclipse.validation.ocl, fr.centralesupelec.edf.riseclipse.iec61850.nsd, fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit, + fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities, org.eclipse.ocl.xtext.oclinecore diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdModelLoader.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdModelLoader.java deleted file mode 100644 index 3e7058aa5a7cd0a0cd6aad37830b91de80d3aee4..0000000000000000000000000000000000000000 --- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdModelLoader.java +++ /dev/null @@ -1,129 +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; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.emf.common.util.Diagnostic; -import org.eclipse.emf.ecore.EDataType; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.EValidator; -import org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.util.Diagnostician; -//import org.eclipse.ocl.pivot.delegate.OCLDelegateDomain; -import org.eclipse.emf.edit.provider.IItemLabelProvider; - -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.provider.NsdItemProviderAdapterFactory; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceFactoryImpl; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; -import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; -import fr.centralesupelec.edf.riseclipse.util.RiseClipseModelLoader; -import fr.centralesupelec.edf.riseclipse.util.TextRiseClipseConsole; - -public class NsdModelLoader extends RiseClipseModelLoader { - - public NsdModelLoader( IRiseClipseConsole console ) { - super( console ); - } - - @Override - public void reset() { - super.reset( new NsdResourceSetImpl( true, console ) ); - - // Register the appropriate resource factory to handle all file - // extensions. - getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap() - .put( Resource.Factory.Registry.DEFAULT_EXTENSION, new NsdResourceFactoryImpl() ); - - // Register the package to ensure it is available during loading. - getResourceSet().getPackageRegistry().put( NsdPackage.eNS_URI, NsdPackage.eINSTANCE ); - } - - @Override - public NsdResourceSetImpl getResourceSet() { - return ( NsdResourceSetImpl ) super.getResourceSet(); - } - - public Resource loadWithoutValidation( String name ) { - Object eValidator = EValidator.Registry.INSTANCE.remove( NsdPackage.eINSTANCE ); - - Resource resource = load( name ); - - if( eValidator != null ) { - EValidator.Registry.INSTANCE.put( NsdPackage.eINSTANCE, eValidator ); - } - return resource; - } - - public static void main( String[] args ) { - IRiseClipseConsole console = new TextRiseClipseConsole(); - //console.setLevel( IRiseClipseConsole.ERROR_LEVEL ); - NsdModelLoader loader = new NsdModelLoader( console ); - - org.eclipse.ocl.xtext.oclinecore.OCLinEcoreStandaloneSetup.doSetup(); - - Map< Object, Object > context = new HashMap< Object, Object >(); - SubstitutionLabelProvider substitutionLabelProvider = new EValidator.SubstitutionLabelProvider() { - - @Override - public String getValueLabel( EDataType eDataType, Object value ) { - return Diagnostician.INSTANCE.getValueLabel( eDataType, value ); - } - - @Override - public String getObjectLabel( EObject eObject ) { - NsdItemProviderAdapterFactory adapter = new NsdItemProviderAdapterFactory(); - IItemLabelProvider labelProvider = ( IItemLabelProvider ) adapter.adapt( eObject, - IItemLabelProvider.class ); - return labelProvider.getText( eObject ); - } - - @Override - public String getFeatureLabel( EStructuralFeature eStructuralFeature ) { - return Diagnostician.INSTANCE.getFeatureLabel( eStructuralFeature ); - } - }; - context.put( EValidator.SubstitutionLabelProvider.class, substitutionLabelProvider ); - - for( int i = 0; i < args.length; ++i ) { - Resource resource = loader.load( args[i] ); - if( resource == null ) continue; - if( resource.getContents().size() == 0 ) continue; - Diagnostic diagnostic = Diagnostician.INSTANCE.validate( resource.getContents().get( 0 ), context ); - - if( diagnostic.getSeverity() == Diagnostic.ERROR || diagnostic.getSeverity() == Diagnostic.WARNING ) { - for( Iterator< Diagnostic > d = diagnostic.getChildren().iterator(); d.hasNext(); ) { - Diagnostic childDiagnostic = d.next(); - switch( childDiagnostic.getSeverity() ) { - case Diagnostic.ERROR: - case Diagnostic.WARNING: - console.error( "\t" + childDiagnostic.getMessage() ); - } - } - } - } - loader.getResourceSet().finalizeLoad( console ); - } - -} diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdValidator.java index d7dc86353fef2b31548b770078d91058ebb92436..254da9ca083ba81edec7920f16f29d8c77ffad29 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdValidator.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NsdValidator.java @@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.EPackage; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.ocl.pivot.validation.ComposedEValidator; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities.NsdModelLoader; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; public class NsdValidator { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/RiseClipseValidatorSCL.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/RiseClipseValidatorSCL.java index 68e562f5a639afdf821301a2d0d13b7b7edfc451..0830aa7891779a297220eae3209218e401c8740b 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/RiseClipseValidatorSCL.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/RiseClipseValidatorSCL.java @@ -26,6 +26,7 @@ import java.util.Map; import fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage; import fr.centralesupelec.edf.riseclipse.iec61850.scl.provider.SclItemProviderAdapterFactory; +import fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities.SclModelLoader; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.RiseClipseFatalException; import fr.centralesupelec.edf.riseclipse.util.TextRiseClipseConsole; @@ -50,7 +51,7 @@ public class RiseClipseValidatorSCL { private static OCLValidator oclValidator; private static SclItemProviderAdapterFactory sclAdapter; - private static SCLModelLoader sclLoader; + private static SclModelLoader sclLoader; private static NsdValidator nsdValidator; private static boolean oclValidation = false; private static boolean nsdValidation = false; @@ -168,7 +169,7 @@ public class RiseClipseValidatorSCL { nsdValidator.prepare( validator, console ); } - sclLoader = new SCLModelLoader( console ); + sclLoader = new SclModelLoader( console ); sclAdapter = new SclItemProviderAdapterFactory(); } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/SCLModelLoader.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/SCLModelLoader.java deleted file mode 100644 index f725dabdd5de4302cad4d13b6ee6b164e6948dcc..0000000000000000000000000000000000000000 --- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/SCLModelLoader.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (c) 2018 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; - -import org.eclipse.emf.ecore.EValidator; -import org.eclipse.emf.ecore.resource.Resource; - -import fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage; -import fr.centralesupelec.edf.riseclipse.iec61850.scl.util.SclResourceFactoryImpl; -import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; -import fr.centralesupelec.edf.riseclipse.util.RiseClipseModelLoader; -import fr.centralesupelec.edf.riseclipse.util.TextRiseClipseConsole; - -public class SCLModelLoader extends RiseClipseModelLoader { - - public SCLModelLoader( IRiseClipseConsole console ) { - super( console ); - } - - @Override - public void reset() { - super.reset(); - - // Register the appropriate resource factory to handle all file - // extensions. - getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap() - .put( Resource.Factory.Registry.DEFAULT_EXTENSION, new SclResourceFactoryImpl() ); - - // Register the package to ensure it is available during loading. - getResourceSet().getPackageRegistry().put( SclPackage.eNS_URI, SclPackage.eINSTANCE ); - } - - public Resource loadWithoutValidation( String name ) { - Object eValidator = EValidator.Registry.INSTANCE.remove( SclPackage.eINSTANCE ); - - Resource resource = load( name ); - - if( eValidator != null ) { - EValidator.Registry.INSTANCE.put( SclPackage.eINSTANCE, eValidator ); - } - return resource; - } - - public static void main( String[] args ) { - IRiseClipseConsole console = new TextRiseClipseConsole(); - SCLModelLoader loader = new SCLModelLoader( console ); - - for( int i = 0; i < args.length; ++i ) { - @SuppressWarnings( "unused" ) - Resource resource = loader.load( args[i] ); - } - } - -} diff --git a/pom.xml b/pom.xml index d32ff5e54e492047aa853daeb6e8e8de1b13719a..cacd0fa4fdc586e4839a531266f2c2b7c448136b 100644 --- a/pom.xml +++ b/pom.xml @@ -115,6 +115,11 @@ <artifactId>fr.centralesupelec.edf.riseclipse.iec61850.scl.edit</artifactId> <version>1.0.2-SNAPSHOT</version> </dependency> + <dependency> + <groupId>fr.centralesupelec.edf.riseclipse</groupId> + <artifactId>fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities</artifactId> + <version>1.0.2-SNAPSHOT</version> + </dependency> <dependency> <groupId>fr.centralesupelec.edf.riseclipse</groupId> <artifactId>fr.centralesupelec.edf.riseclipse.iec61850.nsd</artifactId> @@ -125,6 +130,11 @@ <artifactId>fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> + <dependency> + <groupId>fr.centralesupelec.edf.riseclipse</groupId> + <artifactId>fr.centralesupelec.edf.riseclipse.iec61850.nsd.utilities</artifactId> + <version>1.0.0-SNAPSHOT</version> + </dependency> </dependencies>