+ public void dispatchUpdateStatus(ExecutionProcess process,
+ String oldStatus, String newStatus) {
+ // generic notifiers (notified of everything)
+ for (Iterator<SlcExecutionNotifier> it = getSlcExecutionNotifiers()
+ .iterator(); it.hasNext();) {
+ it.next().updateStatus(process, oldStatus, newStatus);
+ }
+
+ // filtered notifiers
+ for (Iterator<FilteredNotifier> it = filteredNotifiers.iterator(); it
+ .hasNext();) {
+ FilteredNotifier filteredNotifier = it.next();
+ if (filteredNotifier.receiveFrom(process))
+ filteredNotifier.getNotifier().updateStatus(process, oldStatus,
+ newStatus);
+ }
+ }
+
+ public void dispatchAddSteps(ExecutionProcess process,
+ List<ExecutionStep> steps) {
+ for (Iterator<SlcExecutionNotifier> it = getSlcExecutionNotifiers()
+ .iterator(); it.hasNext();) {
+ it.next().addSteps(process, steps);
+ }
+
+ for (Iterator<FilteredNotifier> it = filteredNotifiers.iterator(); it
+ .hasNext();) {
+ FilteredNotifier filteredNotifier = it.next();
+ if (filteredNotifier.receiveFrom(process))
+ filteredNotifier.getNotifier().addSteps(process, steps);
+ }
+ }
+
+ public void registerProcessNotifier(ExecutionProcessNotifier notifier,
+ Map<String, String> properties) {
+ filteredNotifiers.add(new FilteredNotifier(notifier, properties));
+ }
+