From eef2e4f902a96fb71e4c6071373f68037403631d Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Tue, 11 Jun 2013 13:15:04 +0000 Subject: [PATCH] git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@12020 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../descartes/adaptation/TacticsHistory.java | 5 ++- .../IPerformanceDataRepositoryHandler.java | 1 - .../ObservationRepositoryHandler.java | 33 +++++++++++-------- .../ObservationRepositoryHelper.java | 1 - .../PerformanceDataRepositoryHandler.java | 17 +++------- 5 files changed, 28 insertions(+), 29 deletions(-) diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java index e67e8fe0..f3504788 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/TacticsHistory.java @@ -38,7 +38,10 @@ public class TacticsHistory { } public WeightedTactic getLatestAppliedTactic() { - return wTactic.get(wTactic.size() - 1); + if (wTactic.size() <= 0) + return null; + else + return wTactic.get(wTactic.size() - 1); } public String getLatestResultId() { diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/IPerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/IPerformanceDataRepositoryHandler.java index 7d0ca26e..0732aef2 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/IPerformanceDataRepositoryHandler.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/IPerformanceDataRepositoryHandler.java @@ -10,7 +10,6 @@ public interface IPerformanceDataRepositoryHandler { public Impact getLatestImpact(); public Impact getLatestImpact(WeightedTactic tactic); - public Impact getImpactAt(int position); public Result getCurrentSystemState(); } diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHandler.java index 88f6b129..bcc3a048 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHandler.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHandler.java @@ -1,15 +1,16 @@ package edu.kit.ipd.descartes.adaptation.model.perfdatarepo; import static edu.kit.ipd.descartes.adaptation.model.perfdatarepo.PerfDataRepoConverter.convertObservableImpact; -import static edu.kit.ipd.descartes.adaptation.model.perfdatarepo.PerfDataRepoConverter.convertResult; import org.apache.log4j.Logger; import org.eclipse.emf.common.util.URI; +import edu.kit.ipd.descartes.adaptation.TacticsHistory; import edu.kit.ipd.descartes.adaptation.model.AbstractEcoreModelLoader; import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; import edu.kit.ipd.descartes.perfdatarepo.Impact; import edu.kit.ipd.descartes.perfdatarepo.Result; +import edu.kit.ipd.descartes.ql.models.repository.Observation; import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler { @@ -17,26 +18,18 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class); private AbstractEcoreModelLoader modelLoader = null; private ObservationRepository repository = null; - private int iteration = 0; - + private int iteration = 1; + public ObservationRepositoryHandler() { modelLoader = ObservationRepositoryModelLoader.getInstance(); logger.debug("ObservationRepositoryHandler loaded."); } - + @Override public Impact getLatestImpact() { return convertObservableImpact(repository.getLatestImpact()); } - @Override - public Impact getImpactAt(int position) { - iteration++; //This is a hack, see getCurrentSystemState() - if (position > repository.getImpacts().size() - 1) - return null; - return convertObservableImpact(repository.getImpacts().get(position)); - } - @Override public void load(String modelFileUri) { repository = (ObservationRepository) modelLoader.load(URI.createFileURI(modelFileUri)); @@ -44,14 +37,28 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH @Override public Result getCurrentSystemState() { - return convertResult(repository.getObservations().get(iteration)); + WeightedTactic latestTactic = TacticsHistory.getInstance().getLatestAppliedTactic(); + Observation o = null; + + if (latestTactic == null) { + o = repository.getLatestObservation(); + } else { + String expName = ObservationRepositoryHelper.deriveExperimentName(latestTactic, iteration); + logger.debug("Searching for result of " + expName); + o = ObservationRepositoryHelper.getResultEndingWith(expName, repository); + } + + return PerfDataRepoConverter.convertResult(o); + // return convertResult(repository.getObservations().get(iteration++)); } @Override public Impact getLatestImpact(WeightedTactic tactic) { String expName = ObservationRepositoryHelper.deriveExperimentName(tactic, iteration + 1); + logger.debug("Searching for impact of " + expName); Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper .searchImpactOfTactic(expName, repository)); + iteration++; return latestImpact; } } diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHelper.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHelper.java index 1b9ef678..d41553db 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHelper.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/ObservationRepositoryHelper.java @@ -68,5 +68,4 @@ public class ObservationRepositoryHelper { } return null; } - } diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/PerformanceDataRepositoryHandler.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/PerformanceDataRepositoryHandler.java index 10d227bb..4e6d972d 100644 --- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/PerformanceDataRepositoryHandler.java +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/model/perfdatarepo/PerformanceDataRepositoryHandler.java @@ -42,23 +42,14 @@ public class PerformanceDataRepositoryHandler implements IPerformanceDataReposit } @Override - public Impact getImpactAt(int position) { - iteration++; //TODO This is a hack, see getCurrentSystemState() - EList<Impact> impactHistory = repository.getImpactHistory(); - if (position > impactHistory.size() - 1) - return null; - return impactHistory.get(position); + public Impact getLatestImpact(WeightedTactic tactic) { + // TODO Auto-generated method stub + return null; } @Override public Result getCurrentSystemState() { - return repository.getResultHistory().get(iteration); - } - - @Override - public Impact getLatestImpact(WeightedTactic tactic) { - // TODO Auto-generated method stub - return null; + return repository.getResultHistory().get(iteration++); } } -- GitLab