ResourceSimulation(ConfigPattern config, ReadOnlyTimeSeries input, ApplicationManager appMan) {
this.config = config;
this.resource = config.target.getLocationResource();
this.input = input;
this.additive = config.additive.isActive() && config.additive.getValue();
if (!config.forecast.isActive()) {
this.forecast = null;
this.iterator = null;
} else {
final String scheduleName = config.forecast.getValue();
Schedule sched0 = resource.getSubResource(scheduleName);
if (sched0 == null)
sched0 = resource.getSubResource(scheduleName, AbsoluteSchedule.class).create();
this.forecast = sched0;
sched0.activate(false);
this.iterator = new CyclicIterator(input, appMan.getFrameworkTime());
}
this.timer = appMan.createTimer(10000000, this);
timerElapsed(timer);
resource.activate(false);
LoggingUtils.activateLogging(resource, -2);
appMan.getLogger().debug("Simulation started for resource {}", resource);
}