package org.activiti.crystalball.simulator.runtime;
import org.activiti.crystalball.simulator.SimulationRun;
import org.springframework.beans.factory.FactoryBean;
import java.util.Date;
public abstract class SimulationInstanceImpl implements SimulationInstance {
protected String name;
protected String description;
protected String author;
protected int suspensionState = SuspensionState.ACTIVE.getStateCode();
/* scenario parameters */
/** Start time of the scenario */
protected Date start;
/** End time of the scenario */
protected Date end;
/** Number of replication of that scenario that needs to be executed. Defaults to 1. */
protected int replication = 1;
/**
* replication counter
*/
protected int replicationCounter = 0;
protected Job job;
/**
* A random seed to be used to initialize a pseudo random number generator.
* Given the exact same simulation experiment and a given seed, the results should
* be the same across executions.
*/
protected Long seed;
protected String simulationConfigUrl;
protected FactoryBean<SimulationRun> simulationRunFactory;
@Override
public boolean isEnded() {
return suspensionState == SuspensionState.FINISHED.getStateCode();
}
@Override
public boolean isSuspended() {
return suspensionState == SuspensionState.SUSPENDED.getStateCode();
}
@Override
public String getSimulationConfigurationId() {
return simulationConfigUrl;
}
public void start() {
suspensionState = SuspensionState.ACTIVE.getStateCode();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getSuspensionState() {
return suspensionState;
}
public void setSuspensionState(int suspensionState) {
this.suspensionState = suspensionState;
}
public Date getStart() {
return start;
}
public void setStart(Date start) {
this.start = start;
}
public Date getEnd() {
return end;
}
public void setEnd(Date end) {
this.end = end;
}
public int getReplication() {
return replication;
}
public void setReplication(int replication) {
this.replication = replication;
}
public int getReplicationCounter() {
return replicationCounter;
}
public void setReplicationCounter(int replicationCounter) {
this.replicationCounter = replicationCounter;
}
public Long getSeed() {
return seed;
}
public void setSeed(Long seed) {
this.seed = seed;
}
public String getSimulationConfigUrl() {
return simulationConfigUrl;
}
public void setSimulationConfigUrl(String simulationConfigUrl) {
this.simulationConfigUrl = simulationConfigUrl;
}
public FactoryBean<SimulationRun> getSimulationRunFactory() {
return simulationRunFactory;
}
public void setSimulationRunFactory(
FactoryBean<SimulationRun> simulationRunFactory) {
this.simulationRunFactory = simulationRunFactory;
}
}