From 653321720dbe8c9eb7fbda79e6940d644a27aaaf Mon Sep 17 00:00:00 2001 From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr> Date: Tue, 14 May 2019 09:56:57 +0200 Subject: [PATCH] add new method createRiseClipseResource() --- .../iec61850/nsd/util/NsdResourceSetImpl.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java index 956b24f..db39d9c 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Stream; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc; @@ -34,8 +35,10 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; +import fr.centralesupelec.edf.riseclipse.util.RiseClipseMetamodel; import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseResourceSet; @@ -43,12 +46,23 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { private Map< String, NS > nsdResources; private Map< String, NSDoc > nsdocResources; + private NsdResourceFactoryImpl resourceFactory; public NsdResourceSetImpl( boolean strictContent, IRiseClipseConsole console ) { super( strictContent, console ); nsdResources = new HashMap<>(); nsdocResources = new HashMap<>(); + resourceFactory = new NsdResourceFactoryImpl(); + } + + @Override + protected NsdResourceImpl createRiseClipseResource( URI uri, String contentType ) { + Optional< String > metamodel = RiseClipseMetamodel.findMetamodelFor( uri ); + if( metamodel.isPresent() && NsdPackage.eNS_URI.equals( metamodel.get() )) { + return resourceFactory.createResource( uri ); + } + return null; } @Override -- GitLab