From 78254333d84de6cbb8234c4a445416dff622ed13 Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Tue, 11 Jun 2013 09:16:37 +0000 Subject: [PATCH] improved model instance loading git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@12014 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../adaptation/model/AbstractEcoreModelLoader.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/AbstractEcoreModelLoader.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/AbstractEcoreModelLoader.java index fb9dd9c7..8f18ab65 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/AbstractEcoreModelLoader.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/AbstractEcoreModelLoader.java @@ -20,6 +20,7 @@ public abstract class AbstractEcoreModelLoader { private static Logger logger = Logger.getLogger(AbstractEcoreModelLoader.class); private ResourceSet resourceSet = null; private URI currentUri = null; + private EObject loadedModel; protected ResourceSet getResourceSet() { if (resourceSet == null) @@ -46,9 +47,13 @@ public abstract class AbstractEcoreModelLoader { * @throws IOException */ public EObject load(URI uri) { - if (null == uri) { + + if (null == uri) throw new IllegalArgumentException("Missing file URI."); - } + + if (uri.equals(currentUri) && loadedModel != null) + return loadedModel; + // Resource resource = resourceSet.createResource(fileURI); Resource resource = resourceSet.getResource(uri, true); try { @@ -60,6 +65,7 @@ public abstract class AbstractEcoreModelLoader { } currentUri = uri; EcoreUtil.resolveAll(resourceSet); + loadedModel = resource.getContents().get(0); return resource.getContents().get(0); } @@ -115,5 +121,4 @@ public abstract class AbstractEcoreModelLoader { public URI getCurrentModelUri() { return currentUri; } - } -- GitLab