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 {
}
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() {
......
......@@ -10,7 +10,6 @@ public interface IPerformanceDataRepositoryHandler {
public Impact getLatestImpact();
public Impact getLatestImpact(WeightedTactic tactic);
public Impact getImpactAt(int position);
public Result getCurrentSystemState();
}
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;
}
}
......@@ -68,5 +68,4 @@ public class ObservationRepositoryHelper {
}
return null;
}
}
......@@ -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++);
}
}
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