@Override protected Context makeContext(ExperimentStep step, boolean hasFailed, int workerTimeout) { ExperimentStep descriptorStep = experimentDescriptor.getStep(); if (!step.equals(descriptorStep)) { log.shout("Event has step " + step + " but descriptor has step " + descriptorStep); // FIXME: should force a failure } Properties props = experimentDescriptor.getProperties(); return new ContextBase(workerTimeout, hasFailed, props); }
@Override @Cougaar.Execute(on = Subscribe.ModType.ADD) public void executeSocietyCompletion(SocietyCompletionEvent<ExperimentStep, R> event) { // Sanity check ExperimentStep eventStep = event.getStep(); ExperimentStep descriptorStep = experimentDescriptor.getStep(); if (!eventStep.equals(descriptorStep)) { log.error("Event has step " + eventStep + " but descriptor has step " + descriptorStep); sequenceFailed(event); return; } if (!event.isSuccessful()) { sequenceFailed(event); return; } experimentDescriptor.doWork(event); long deferMillis = experimentDescriptor.getDeferMillis(); if (deferMillis > 0) { deferSocietyCompletion(event, deferMillis); } else { resumeSocietyCompletion(event); } }