From 835abae467b2b16a4619bb72ffc5d6fef512adda Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Wed, 18 Sep 2013 15:02:28 +0000
Subject: [PATCH] introduced new interface signature to query latest impact

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@13117 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../META-INF/MANIFEST.MF                      | 13 ++++++++++-
 .../adaptation/analysis/IModelAnalyzer.java   |  4 ++++
 .../analysis/pcm/PcmModelAnalyzer.java        | 23 ++++++++++++++++++-
 3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/edu.kit.ipd.descartes.adaptation.analysis/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.adaptation.analysis/META-INF/MANIFEST.MF
index b0679f94..479e4b98 100644
--- a/edu.kit.ipd.descartes.adaptation.analysis/META-INF/MANIFEST.MF
+++ b/edu.kit.ipd.descartes.adaptation.analysis/META-INF/MANIFEST.MF
@@ -6,5 +6,16 @@ Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: edu.kit.ipd.descartes.adaptation.analysis.Activator
 Bundle-Vendor: Descartes Research Group
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Import-Package: org.apache.log4j;version="1.2.15",
+Import-Package: edu.kit.ipd.descartes.adaptation.model.adaptation.dmm,
+ edu.kit.ipd.descartes.adaptation.model.repository,
+ edu.kit.ipd.descartes.adaptation.model.repository.dmm,
+ edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo,
+ edu.kit.ipd.descartes.mm.resourcelandscape,
+ edu.kit.ipd.descartes.perfdatarepo,
+ edu.kit.ipd.descartes.ql.models.repository,
+ org.apache.log4j;version="1.2.15",
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore,
  org.osgi.framework;version="1.3.0"
+Export-Package: edu.kit.ipd.descartes.adaptation.analysis,
+ edu.kit.ipd.descartes.adaptation.analysis.pcm
diff --git a/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/IModelAnalyzer.java b/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/IModelAnalyzer.java
index 81a987d2..8ee1b249 100644
--- a/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/IModelAnalyzer.java
+++ b/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/IModelAnalyzer.java
@@ -1,5 +1,7 @@
 package edu.kit.ipd.descartes.adaptation.analysis;
 
+import edu.kit.ipd.descartes.perfdatarepo.Impact;
+
 public interface IModelAnalyzer {
 	
 	/**
@@ -7,4 +9,6 @@ public interface IModelAnalyzer {
 	 */
 	public void analyze();
 
+    public Impact getLatestImpact();
+
 }
diff --git a/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/pcm/PcmModelAnalyzer.java b/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/pcm/PcmModelAnalyzer.java
index ec04eb65..e71f9502 100644
--- a/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/pcm/PcmModelAnalyzer.java
+++ b/edu.kit.ipd.descartes.adaptation.analysis/src/edu/kit/ipd/descartes/adaptation/analysis/pcm/PcmModelAnalyzer.java
@@ -3,15 +3,36 @@ package edu.kit.ipd.descartes.adaptation.analysis.pcm;
 import org.apache.log4j.Logger;
 
 import edu.kit.ipd.descartes.adaptation.analysis.IModelAnalyzer;
+import edu.kit.ipd.descartes.adaptation.model.adaptation.dmm.BlueYonderExperimentTracker;
+import edu.kit.ipd.descartes.adaptation.model.repository.dmm.AdaptationProcessModelLoader;
+import edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo.IPerformanceDataRepositoryHandler;
+import edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo.ObservationRepositoryHelper;
+import edu.kit.ipd.descartes.adaptation.model.repository.perfdatarepo.PerfDataRepoConverter;
+import edu.kit.ipd.descartes.perfdatarepo.Impact;
+import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
 
 public class PcmModelAnalyzer /*extends SimuComWorkflowLauncher*/ implements IModelAnalyzer {
 	
 	private static Logger logger = Logger.getLogger(PcmModelAnalyzer.class);
+	private IPerformanceDataRepositoryHandler perfDataRepoHandler = null;
 
-	@Override
+	public PcmModelAnalyzer(IPerformanceDataRepositoryHandler perfDataRepoHandler) {
+        this.perfDataRepoHandler = perfDataRepoHandler;
+    }
+
+    @Override
 	public void analyze() {
 		logger.error("Model analyzation has not been implemented yet!");
 		//TODO generate dummy results
 	}
 
+    @Override
+    public Impact getLatestImpact() {
+        String expName = BlueYonderExperimentTracker.getInstance().getExperimentNameForDistributedDataCenter(AdaptationProcessModelLoader.getDistributedDataCenter());
+        logger.debug("Searching for impact of " + expName);
+        Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper
+                .searchImpactOfTactic(expName, (ObservationRepository) perfDataRepoHandler.getRepository()));
+        return latestImpact;
+    }
+
 }
-- 
GitLab