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