Skip to content
Snippets Groups Projects
Commit 0cf8f28c authored by Rico Bergmann's avatar Rico Bergmann
Browse files

Merge branch 'develop' into 'master'

Publish v0.1.1

See merge request !3
parents c488af89 abb878c4
No related branches found
No related tags found
1 merge request!3Publish v0.1.1
......@@ -2,7 +2,7 @@ import sbt.Keys.{libraryDependencies, scalacOptions, version}
val emfcommonVersion = "2.12.0"
val emfecoreVersion = "2.12.0"
val scrollVersion = "1.6"
val scrollVersion = "1.8"
val scoptVersion = "3.7.0"
val liftVersion = "3.3.0"
......@@ -14,6 +14,7 @@ lazy val generator = (project in file("."))
version := "0.1",
scalaVersion := "2.12.6",
libraryDependencies ++= Seq(
"com.github.max-leuthaeuser" %% "scroll" % scrollVersion,
"org.scala-lang" % "scala-reflect" % scalaVersion.value,
"org.scala-lang" % "scala-compiler" % scalaVersion.value,
"org.eclipse.emf" % "org.eclipse.emf.common" % emfcommonVersion,
......
Subproject commit ace8bdf5799dd89bd66d01782237123172bb0ec0
Subproject commit 619bbf1efcfee406a134412275928322d9d28e05
Subproject commit 623765816af6d27387efb82dfb890bc4318c58a2
package org.rosi_project.model_sync.generator
import org.eclipse.emf.common.util.URI
import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
import org.eclipse.emf.ecore.{EObject, EPackage}
import scroll.internal.ecore.ECoreImporter
/** Simple service to load an ECORE model from a file.
*
* @author Rico Bergmann
*/
class EcoreLoader extends ECoreImporter {
class EcoreLoader {
/** Fetches an ecore model from XML.
*
......@@ -15,8 +18,13 @@ class EcoreLoader extends ECoreImporter {
* @return the model described by the XML
*/
def loadEcore(path: String = "assets/ttc17.ecore"): EPackage = {
this.path = path
val res = loadModel()
// see https://github.com/max-leuthaeuser/SCROLL/blob/dd269d5620257be1ea2f2044f398c090e9755fb3/core/src/main/scala/scroll/internal/ecore/ECoreImporter.scala
require(null != path && path.nonEmpty)
val resourceSet = new ResourceSetImpl()
val _ = resourceSet.getResourceFactoryRegistry.getExtensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl())
val res = resourceSet.getResource(URI.createFileURI(path), true)
require(null != res)
require(!res.getContents.isEmpty)
res.getContents.toArray(new Array[EObject](0)).toList.find(_.isInstanceOf[EPackage]).map((p: EObject) => p.asInstanceOf[EPackage]).orNull
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment