Class AbstractLQNAnalysis
java.lang.Object
de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
de.uka.ipd.sdq.dsexplore.analysis.lqn.AbstractLQNAnalysis
- All Implemented Interfaces:
IAnalysis
- Direct Known Subclasses:
LQNSolverAnalysis
,LQSimAnalysis
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
protected static org.apache.log4j.Logger
Logger for log4j.Fields inherited from class de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
blackboard, criteriaList, criterionToAspect, qualityAttribute
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
analyse
(PCMPhenotype pheno, IProgressMonitor monitor) Analyses the current PCM instance from the blackboard.protected abstract String
protected abstract IAnalysisResult
handleException
(RuntimeException e, org.palladiosimulator.solver.models.PCMInstance pcm) try to handle the exception or throw it back.void
initialise
(DSEWorkflowConfiguration configuration) Saves the passed Run Configuration information so that we do not have to pass them as parameters all the time.protected abstract ILQNResult
retrieveResult
(org.palladiosimulator.solver.models.PCMInstance pcm, org.palladiosimulator.solver.lqn.LqnModelType model, org.opt4j.core.Criterion criterion) retrieveResultsFor
(PCMPhenotype pheno, org.opt4j.core.Criterion criterion) FIXME: Make this method independent of the blackboard state.void
setBlackboard
(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard) Methods inherited from class de.uka.ipd.sdq.dsexplore.analysis.AbstractAnalysis
canEvaluateAspect, getCriterions, getPCMInstance, getQualityAttribute, hasStatisticResultsFor, initialiseCriteria
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface de.uka.ipd.sdq.dsexplore.analysis.IAnalysis
getCriterions, getQualityAttribute, hasObjectivePerUsageScenario, hasStatisticResultsFor
-
Field Details
-
logger
protected static org.apache.log4j.Logger loggerLogger for log4j. -
iteration
protected int iteration
-
-
Constructor Details
-
AbstractLQNAnalysis
public AbstractLQNAnalysis()
-
-
Method Details
-
analyse
public void analyse(PCMPhenotype pheno, IProgressMonitor monitor) throws AnalysisFailedException, CoreException, de.uka.ipd.sdq.workflow.jobs.UserCanceledException Analyses the current PCM instance from the blackboard. This method can only be called after calling#initialise(MDSDBlackboard, ILaunchConfiguration, ILaunch)
. The PCM instance for thisPCMPhenotype
has to be copied to the Blackboard into partitionLoadPCMModelsIntoBlackboardJob
.PCM_MODELS_PARTITION_ID before callings this. Otherwise, a wrong PCM model is analysed. The Analysis has to store the results for thisPCMPhenotype
, so thatIAnalysis.retrieveResultsFor(PCMPhenotype, Criterion)
can be called on it multiple times. The results should be stored in a memory-efficient way.- Specified by:
analyse
in interfaceIAnalysis
- Parameters:
pheno
- TODO- Throws:
de.uka.ipd.sdq.workflow.jobs.UserCanceledException
AnalysisFailedException
CoreException
-
retrieveResultsFor
public IAnalysisResult retrieveResultsFor(PCMPhenotype pheno, org.opt4j.core.Criterion criterion) throws AnalysisFailedException FIXME: Make this method independent of the blackboard state.- Specified by:
retrieveResultsFor
in interfaceIAnalysis
- Parameters:
pheno
- TODO- Returns:
- Throws:
AnalysisFailedException
-
handleException
protected abstract IAnalysisResult handleException(RuntimeException e, org.palladiosimulator.solver.models.PCMInstance pcm) try to handle the exception or throw it back.- Parameters:
e
-pcm
-- Returns:
-
getSolverMessageString
-
retrieveResult
protected abstract ILQNResult retrieveResult(org.palladiosimulator.solver.models.PCMInstance pcm, org.palladiosimulator.solver.lqn.LqnModelType model, org.opt4j.core.Criterion criterion) throws AnalysisFailedException - Throws:
AnalysisFailedException
-
initialise
Saves the passed Run Configuration information so that we do not have to pass them as parameters all the time. For real analyses, you need to call setBlackboard before this so that the objectives can be determined from the usage model. For theAnalysisProxy
it is ok to call this first, you then need to call setBlackboard before callingIAnalysis.analyse(PCMPhenotype, IProgressMonitor)
,#retrieveLastResultsForObjective(Objective)
,#getObjectives()
, orIAnalysis.hasObjectivePerUsageScenario()
.- Specified by:
initialise
in interfaceIAnalysis
- Throws:
CoreException
- See Also:
-
de.uka.ipd.sdq.dsexplore.analysis.IAnalysis#initialise(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
-
setBlackboard
public void setBlackboard(de.uka.ipd.sdq.workflow.mdsd.blackboard.MDSDBlackboard blackboard) - Specified by:
setBlackboard
in interfaceIAnalysis
-