+ private List<SlcExecutionNotifier> getSlcExecutionNotifiers() {
+ return slcExecutionNotifiers;
+ }
+
+ protected class FilteredNotifier {
+ private final ExecutionProcessNotifier notifier;
+ private final String processId;
+
+ public FilteredNotifier(ExecutionProcessNotifier notifier,
+ Map<String, String> properties) {
+ super();
+ this.notifier = notifier;
+ if (properties == null)
+ properties = new HashMap<String, String>();
+ if (properties.containsKey(SLC_PROCESS_ID))
+ processId = properties.get(SLC_PROCESS_ID);
+ else
+ processId = null;
+ }
+
+ /**
+ * Whether event from this process should be received by this listener.
+ */
+ public Boolean receiveFrom(ExecutionProcess process) {
+ if (processId != null)
+ if (process.getUuid().equals(processId))
+ return true;
+ else
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return notifier.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof FilteredNotifier) {
+ FilteredNotifier fn = (FilteredNotifier) obj;
+ return notifier.equals(fn.notifier);
+ } else if (obj instanceof ExecutionProcessNotifier) {
+ ExecutionProcessNotifier epn = (ExecutionProcessNotifier) obj;
+ return notifier.equals(epn);
+ } else
+ return false;
+ }
+
+ public ExecutionProcessNotifier getNotifier() {
+ return notifier;
+ }
+
+ }