package com.plectix.simulator.simulator;
import com.plectix.simulator.controller.SimulatorStatusInterface;
/**
* This object holds data to report the status of the Simulator for periodical updates.
* <br>
*
* It is not thread-safe because we assume that only one thread which is separate than the
* simulation thread calls its get methods and requests its update from the Simulator (which
* in turn calls the set methods). Therefore, the same thread calls all the method below.
* Make sure that simulation thread doesn't use this object.
*
* @author ecemis
*/
public final class SimulatorStatus implements SimulatorStatusInterface {
private long currentEventNumber = 0;
private int currentIterationNumber = 0;
private double currentTime = Double.NaN;
private double progress = Double.NaN;
private String statusMessage = null;
SimulatorStatus() {
super();
}
public final double getCurrentEventNumber() {
return currentEventNumber;
}
public final int getCurrentIterationNumber() {
return currentIterationNumber;
}
public final double getCurrentTime() {
return currentTime;
}
public final int getNumberOfObservables() {
throw new RuntimeException("This method is not implemented yet!");
}
public final int getObservableCount(int i) {
throw new RuntimeException("This method is not implemented yet!");
}
public final String getObservableName(int i) {
throw new RuntimeException("This method is not implemented yet!");
}
public final double getProgress() {
return progress ;
}
/**
* Unused method?
*/
public final String getStatusMessage() {
return statusMessage;
}
final void setCurrentEventNumber(long currentEventNumber) {
this.currentEventNumber = currentEventNumber;
}
final void setCurrentIterationNumber(int currentIterationNumber) {
this.currentIterationNumber = currentIterationNumber;
}
final void setCurrentTime(double currentTime) {
this.currentTime = currentTime;
}
public final void setProgress(double progress) {
this.progress = progress;
}
public final void setStatusMessage(String statusMessage) {
this.statusMessage = statusMessage;
}
}