From d64646829610a5bdc1974b1693c8f17bee46914d Mon Sep 17 00:00:00 2001 From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de> Date: Wed, 12 Jun 2013 14:20:32 +0000 Subject: [PATCH] refactoring generation/derivation of experiment name factored out git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@12056 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../ObservationRepositoryHandler.java | 10 +++--- .../ObservationRepositoryHelper.java | 21 +----------- .../util/BlueYonderExperimentTracker.java | 32 +++++++++++++++++++ 3 files changed, 38 insertions(+), 25 deletions(-) create mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java 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 bcc3a048..473f6868 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 @@ -7,6 +7,7 @@ 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.adaptation.util.BlueYonderExperimentTracker; import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; import edu.kit.ipd.descartes.perfdatarepo.Impact; import edu.kit.ipd.descartes.perfdatarepo.Result; @@ -15,10 +16,10 @@ import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler { + private BlueYonderExperimentTracker tracker = new BlueYonderExperimentTracker(); private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class); private AbstractEcoreModelLoader modelLoader = null; private ObservationRepository repository = null; - private int iteration = 1; public ObservationRepositoryHandler() { modelLoader = ObservationRepositoryModelLoader.getInstance(); @@ -43,22 +44,21 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH if (latestTactic == null) { o = repository.getLatestObservation(); } else { - String expName = ObservationRepositoryHelper.deriveExperimentName(latestTactic, iteration); + String expName = tracker.getCurrentExperimentName(); 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); + tracker.track(tactic); + String expName = tracker.getCurrentExperimentName(); 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 d41553db..f81f7def 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 @@ -4,13 +4,12 @@ import java.util.List; import org.eclipse.emf.ecore.util.EcoreUtil; -import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; import edu.kit.ipd.descartes.ql.models.repository.ObservableImpact; import edu.kit.ipd.descartes.ql.models.repository.Observation; import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; public class ObservationRepositoryHelper { - + public static ObservableImpact searchImpactOfTactic(String name, ObservationRepository repository) { // Get correct result Observation o = getResultEndingWith(name, repository); @@ -20,24 +19,6 @@ public class ObservationRepositoryHelper { return i; } - public static String deriveExperimentName(WeightedTactic tactic) { - return tactic.getName(); - } - - public static String deriveExperimentName(WeightedTactic tactic, int iteration) { - - String execTacticName = tactic.getName(); - - if (execTacticName.contains("Low")) { - String desc1 = "Xreq-par-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$-req=5-size=50000"; - return null; - } else if (execTacticName.contains("High")) { - String desc4 = "Xreq-par-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$-req=5-size=50000"; - return desc4.replace("$", Integer.toString(iteration)); - } - return null; - } - public static ObservableImpact getImpactForObservation(Observation o, ObservationRepository repo) { if (o == null || repo == null) return null; diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java new file mode 100644 index 00000000..6d29bc93 --- /dev/null +++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/util/BlueYonderExperimentTracker.java @@ -0,0 +1,32 @@ +package edu.kit.ipd.descartes.adaptation.util; + +import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; + +public class BlueYonderExperimentTracker { + + private static final String RESULT_NAME = "Xreq-par-$1Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$2-req=5-size=50000"; + private int psOnDescOne = 0; + private int psOnDescFour = 1; + + public String getCurrentExperimentName() { + String result = RESULT_NAME; + + if (psOnDescOne > 0) + result = RESULT_NAME.replace("$1", psOnDescOne + "ps-desc1-"); + else + result = RESULT_NAME.replace("$1", ""); + + result = result.replace("$2", Integer.toString(psOnDescFour)); + return result; + } + + public void track(WeightedTactic tactic) { + String execTacticName = tactic.getName(); + + if (execTacticName.contains("Low")) { + psOnDescOne++; + } else if (execTacticName.contains("High")) { + psOnDescFour++; + } + } +} -- GitLab