+ 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();
+ }