From 53bb96d7d7c2a99ffe7b6feb139dfb6a68f23d87 Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Fri, 4 Jul 2014 09:42:15 +0000
Subject: [PATCH] switch to ObservationRepository

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/DMM/trunk@16152 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../META-INF/MANIFEST.MF                      |  7 ++--
 .../IPerformanceDataRepositoryHandler.java    |  7 ++++
 .../ObservationRepositoryHandler.java         | 35 +++++++++++++------
 .../PerformanceDataRepositoryHandler.java     |  6 ++++
 4 files changed, 41 insertions(+), 14 deletions(-)

diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF
index 382a7e26..93f790c2 100644
--- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF
+++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/META-INF/MANIFEST.MF
@@ -6,10 +6,10 @@ Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: edu.kit.ipd.descartes.adaptation.evaluation.performance.Activator
 Bundle-Vendor: Descartes Research Group
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Import-Package: edu.kit.ipd.descartes.core,
+Import-Package: edu.kit.ipd.descartes.adaptation.model,
+ edu.kit.ipd.descartes.core,
  edu.kit.ipd.descartes.identifier,
  edu.kit.ipd.descartes.mm.adaptation,
- edu.kit.ipd.descartes.adaptation.model,
  edu.kit.ipd.descartes.perfdatarepo,
  edu.kit.ipd.descartes.ql.models.mapping.domain,
  edu.kit.ipd.descartes.ql.models.mapping.mapping,
@@ -17,10 +17,9 @@ Import-Package: edu.kit.ipd.descartes.core,
  org.apache.log4j;version="1.2.15",
  org.eclipse.emf.common.util,
  org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.util,
  org.eclipse.emf.ecore.resource,
  org.eclipse.emf.ecore.resource.impl,
- org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.ecore.util,
  org.eclipse.emf.ecore.xmi.impl,
  org.osgi.framework;version="1.3.0"
 Export-Package: edu.kit.ipd.descartes.adaptation.evaluation.performance,
diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java
index 98c71a7f..3ebbb33d 100644
--- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java
+++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/IPerformanceDataRepositoryHandler.java
@@ -14,4 +14,11 @@ public interface IPerformanceDataRepositoryHandler {
     public Result getCurrentSystemState();
 
     public EObject getRepository();
+
+    /**
+     * This is a helper function to overcome the problem that
+     * there is no performance prediction connected right now.
+     * Therefore we have to set the new system state manually.
+     */
+	public void setNewSystemState();
 }
diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java
index 4922aa52..8c9ba5f6 100644
--- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java
+++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/ObservationRepositoryHandler.java
@@ -2,9 +2,13 @@ package edu.kit.ipd.descartes.adaptation.evaluation.performance.repository;
 
 import static edu.kit.ipd.descartes.adaptation.evaluation.performance.repository.PerfDataRepoConverter.convertObservableImpact;
 
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.log4j.Logger;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 
 import edu.kit.ipd.descartes.adaptation.model.AbstractEcoreModelLoader;
 import edu.kit.ipd.descartes.perfdatarepo.Impact;
@@ -38,16 +42,6 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
     public Result getCurrentSystemState() {
         Observation o = repository.getLatestObservation();
 
-//        WeightedTactic latestTactic = TacticsHistory.getInstance().getLatestAppliedTactic();
-//        if (latestTactic == null) {
-//            o = repository.getLatestObservation();
-//        } else {
-//            // TODO: Blue Yonder specific, introduce abstraction layer
-//            String expName = BlueYonderExperimentTracker.getInstance.getExperimentNameForDistributedDataCenter(AdaptationProcessModelLoader.getDistributedDataCenter());
-//            logger.debug("Searching for result of " + expName);
-//            o = ObservationRepositoryHelper.getResultEndingWith(expName, repository);
-//        }
-
         if (o == null)
             return null;
         else 
@@ -58,5 +52,26 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
     public EObject getRepository() {
         return repository;
     }
+    
 
+	@Override
+	public void setNewSystemState() {
+		List<Observation> observations = repository.getObservations();
+		Observation currentObservation = repository.getLatestObservation();
+		Observation newObservation = null;
+		for (Iterator<Observation> iterator = observations.iterator(); iterator.hasNext();) {
+			Observation observ = (Observation) iterator.next();
+			if (EcoreUtil.equals(observ, currentObservation)) {
+				newObservation = iterator.next();
+				break;
+			}
+		}
+		if (newObservation != null) {
+			repository.setLatestObservation(newObservation);
+		}
+		else {
+			logger.error("Error determining new system state!");
+			throw new RuntimeException();
+		}
+	}
 }
diff --git a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java
index 4825beff..a640d264 100644
--- a/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java
+++ b/edu.kit.ipd.descartes.adaptation.evaluation.performance/src/edu/kit/ipd/descartes/adaptation/evaluation/performance/repository/PerformanceDataRepositoryHandler.java
@@ -51,4 +51,10 @@ public class PerformanceDataRepositoryHandler implements IPerformanceDataReposit
         return repository;
     }
 
+	@Override
+	public void setNewSystemState() {
+		// TODO Auto-generated method stub
+		
+	}
+
 }
-- 
GitLab