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
Branches master
No related tags found
1 merge request!3Publish v0.1.1
...@@ -2,7 +2,7 @@ import sbt.Keys.{libraryDependencies, scalacOptions, version} ...@@ -2,7 +2,7 @@ import sbt.Keys.{libraryDependencies, scalacOptions, version}
val emfcommonVersion = "2.12.0" val emfcommonVersion = "2.12.0"
val emfecoreVersion = "2.12.0" val emfecoreVersion = "2.12.0"
val scrollVersion = "1.6" val scrollVersion = "1.8"
val scoptVersion = "3.7.0" val scoptVersion = "3.7.0"
val liftVersion = "3.3.0" val liftVersion = "3.3.0"
...@@ -14,6 +14,7 @@ lazy val generator = (project in file(".")) ...@@ -14,6 +14,7 @@ lazy val generator = (project in file("."))
version := "0.1", version := "0.1",
scalaVersion := "2.12.6", scalaVersion := "2.12.6",
libraryDependencies ++= Seq( libraryDependencies ++= Seq(
"com.github.max-leuthaeuser" %% "scroll" % scrollVersion,
"org.scala-lang" % "scala-reflect" % scalaVersion.value, "org.scala-lang" % "scala-reflect" % scalaVersion.value,
"org.scala-lang" % "scala-compiler" % scalaVersion.value, "org.scala-lang" % "scala-compiler" % scalaVersion.value,
"org.eclipse.emf" % "org.eclipse.emf.common" % emfcommonVersion, "org.eclipse.emf" % "org.eclipse.emf.common" % emfcommonVersion,
......
Subproject commit ace8bdf5799dd89bd66d01782237123172bb0ec0 Subproject commit 619bbf1efcfee406a134412275928322d9d28e05
Subproject commit 623765816af6d27387efb82dfb890bc4318c58a2
package org.rosi_project.model_sync.generator 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 org.eclipse.emf.ecore.{EObject, EPackage}
import scroll.internal.ecore.ECoreImporter
/** Simple service to load an ECORE model from a file. /** Simple service to load an ECORE model from a file.
* *
* @author Rico Bergmann * @author Rico Bergmann
*/ */
class EcoreLoader extends ECoreImporter { class EcoreLoader {
/** Fetches an ecore model from XML. /** Fetches an ecore model from XML.
* *
...@@ -15,8 +18,13 @@ class EcoreLoader extends ECoreImporter { ...@@ -15,8 +18,13 @@ class EcoreLoader extends ECoreImporter {
* @return the model described by the XML * @return the model described by the XML
*/ */
def loadEcore(path: String = "assets/ttc17.ecore"): EPackage = { def loadEcore(path: String = "assets/ttc17.ecore"): EPackage = {
this.path = path // see https://github.com/max-leuthaeuser/SCROLL/blob/dd269d5620257be1ea2f2044f398c090e9755fb3/core/src/main/scala/scroll/internal/ecore/ECoreImporter.scala
val res = loadModel() 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 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