From f22dcb43b3473bac3cc87b141ed63b819593a8eb Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr>
Date: Tue, 14 May 2019 09:41:52 +0200
Subject: [PATCH] implement new method createRiseClipseResource()

---
 .../iec61850/scl/util/SclResourceSetImpl.java | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java
index f2847b8..a255f14 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclResourceSetImpl.java
@@ -22,20 +22,39 @@ package fr.centralesupelec.edf.riseclipse.iec61850.scl.util;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 
+import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.SCL;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.SclPackageImpl;
 import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
+import fr.centralesupelec.edf.riseclipse.util.IRiseClipseResource;
+import fr.centralesupelec.edf.riseclipse.util.RiseClipseMetamodel;
 import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseResourceSet;
 
 
 @SuppressWarnings( "unused" )
 public class SclResourceSetImpl extends AbstractRiseClipseResourceSet {
     
+    private SclResourceFactoryImpl resourceFactory;
+
     public SclResourceSetImpl( boolean strictContent, IRiseClipseConsole console ) {
         super( strictContent, console );
+        
+        resourceFactory = new SclResourceFactoryImpl();
+    }
+
+    @Override
+    protected SclResourceImpl createRiseClipseResource( URI uri, String contentType ) {
+        Optional< String > metamodel = RiseClipseMetamodel.findMetamodelFor( uri );
+        if( metamodel.isPresent() && SclPackage.eNS_URI.equals( metamodel.get() )) {
+            return resourceFactory.createResource( uri );
+        }
+        return null;
     }
 
     /* (non-Javadoc)
-- 
GitLab