package com.plectix.simulator.simulator.api.steps;
import com.plectix.simulator.simulator.SimulationData;
import com.plectix.simulator.simulator.api.OperationType;
import com.plectix.simulator.staticanalysis.StaticAnalysisException;
import com.plectix.simulator.staticanalysis.localviews.LocalViewsMain;
public class LocalViewsComputationOperation extends AbstractOperation<LocalViewsMain> {
private final SimulationData simulationData;
public LocalViewsComputationOperation(SimulationData simulationData) {
super(simulationData, OperationType.LOCAL_VIEWS);
this.simulationData = simulationData;
}
protected LocalViewsMain performDry() throws StaticAnalysisException {
// see this method, it's very nice
return simulationData.getKappaSystem().getLocalViews();
}
@Override
/**
* Notice this! if anyone tries to "getLocalViews()", he
* would automatically get them initialized
* See KappaSystem.getLocalViews()
*/
protected boolean noNeedToPerform() {
return false;
}
@Override
protected LocalViewsMain retrievePreparedResult() throws StaticAnalysisException {
return simulationData.getKappaSystem().getLocalViews();
}
}