Skip to content
Snippets Groups Projects
Commit eef2e4f9 authored by Nikolaus Huber's avatar Nikolaus Huber
Browse files

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@12020 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parent 9aa1f228
No related branches found
No related tags found
No related merge requests found
...@@ -38,7 +38,10 @@ public class TacticsHistory { ...@@ -38,7 +38,10 @@ public class TacticsHistory {
} }
public WeightedTactic getLatestAppliedTactic() { 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() { public String getLatestResultId() {
......
...@@ -10,7 +10,6 @@ public interface IPerformanceDataRepositoryHandler { ...@@ -10,7 +10,6 @@ public interface IPerformanceDataRepositoryHandler {
public Impact getLatestImpact(); public Impact getLatestImpact();
public Impact getLatestImpact(WeightedTactic tactic); public Impact getLatestImpact(WeightedTactic tactic);
public Impact getImpactAt(int position);
public Result getCurrentSystemState(); public Result getCurrentSystemState();
} }
package edu.kit.ipd.descartes.adaptation.model.perfdatarepo; 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.convertObservableImpact;
import static edu.kit.ipd.descartes.adaptation.model.perfdatarepo.PerfDataRepoConverter.convertResult;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.URI; 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.model.AbstractEcoreModelLoader;
import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic; import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
import edu.kit.ipd.descartes.perfdatarepo.Impact; import edu.kit.ipd.descartes.perfdatarepo.Impact;
import edu.kit.ipd.descartes.perfdatarepo.Result; 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; import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler { public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler {
...@@ -17,26 +18,18 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH ...@@ -17,26 +18,18 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class); private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class);
private AbstractEcoreModelLoader modelLoader = null; private AbstractEcoreModelLoader modelLoader = null;
private ObservationRepository repository = null; private ObservationRepository repository = null;
private int iteration = 0; private int iteration = 1;
public ObservationRepositoryHandler() { public ObservationRepositoryHandler() {
modelLoader = ObservationRepositoryModelLoader.getInstance(); modelLoader = ObservationRepositoryModelLoader.getInstance();
logger.debug("ObservationRepositoryHandler loaded."); logger.debug("ObservationRepositoryHandler loaded.");
} }
@Override @Override
public Impact getLatestImpact() { public Impact getLatestImpact() {
return convertObservableImpact(repository.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 @Override
public void load(String modelFileUri) { public void load(String modelFileUri) {
repository = (ObservationRepository) modelLoader.load(URI.createFileURI(modelFileUri)); repository = (ObservationRepository) modelLoader.load(URI.createFileURI(modelFileUri));
...@@ -44,14 +37,28 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH ...@@ -44,14 +37,28 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
@Override @Override
public Result getCurrentSystemState() { 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 @Override
public Impact getLatestImpact(WeightedTactic tactic) { public Impact getLatestImpact(WeightedTactic tactic) {
String expName = ObservationRepositoryHelper.deriveExperimentName(tactic, iteration + 1); String expName = ObservationRepositoryHelper.deriveExperimentName(tactic, iteration + 1);
logger.debug("Searching for impact of " + expName);
Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper
.searchImpactOfTactic(expName, repository)); .searchImpactOfTactic(expName, repository));
iteration++;
return latestImpact; return latestImpact;
} }
} }
...@@ -68,5 +68,4 @@ public class ObservationRepositoryHelper { ...@@ -68,5 +68,4 @@ public class ObservationRepositoryHelper {
} }
return null; return null;
} }
} }
...@@ -42,23 +42,14 @@ public class PerformanceDataRepositoryHandler implements IPerformanceDataReposit ...@@ -42,23 +42,14 @@ public class PerformanceDataRepositoryHandler implements IPerformanceDataReposit
} }
@Override @Override
public Impact getImpactAt(int position) { public Impact getLatestImpact(WeightedTactic tactic) {
iteration++; //TODO This is a hack, see getCurrentSystemState() // TODO Auto-generated method stub
EList<Impact> impactHistory = repository.getImpactHistory(); return null;
if (position > impactHistory.size() - 1)
return null;
return impactHistory.get(position);
} }
@Override @Override
public Result getCurrentSystemState() { public Result getCurrentSystemState() {
return repository.getResultHistory().get(iteration); return repository.getResultHistory().get(iteration++);
}
@Override
public Impact getLatestImpact(WeightedTactic tactic) {
// TODO Auto-generated method stub
return null;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment