aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/ModelLoader.xtend
blob: 95f14bc16b18ad53e6bf7abba7e73b4ad5f0b180 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package hu.bme.mit.inf.dslreasoner.application.execution

import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
import org.eclipse.emf.common.util.URI
import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.PartialModelSpecification

class ModelLoader {
	
	def loadModel(PartialModelSpecification specification, ScriptExecutor scriptExecutor) {
		val entries = specification.entry
		if (entries.size == 1) {
			var URI uri
			try {
				uri = URI::createURI(
					scriptExecutor.getFileSpecification(specification.entry.head.path).path
				)
			} catch (IllegalArgumentException e) {
				return null
			}

			val resourceSet = new ResourceSetImpl
			val resource = resourceSet.getResource(uri, true)
			if (resource === null) {
			} else {
				return resource.allContents.toList
			}
		} else {
			throw new UnsupportedOperationException('''Currently single partial models are supported''')
		}

	}
}