diff --git a/data-bus/src/main/java/com/iluwatar/databus/App.java b/data-bus/src/main/java/com/iluwatar/databus/App.java index 2dff853b9..aa67ff420 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/App.java +++ b/data-bus/src/main/java/com/iluwatar/databus/App.java @@ -26,7 +26,7 @@ package com.iluwatar.databus; import com.iluwatar.databus.data.MessageData; import com.iluwatar.databus.data.StartingData; import com.iluwatar.databus.data.StoppingData; -import com.iluwatar.databus.members.CounterMember; +import com.iluwatar.databus.members.MessageCollectorMember; import com.iluwatar.databus.members.StatusMember; import java.time.LocalDateTime; @@ -44,8 +44,8 @@ class App { final DataBus bus = DataBus.getInstance(); bus.subscribe(new StatusMember(1)); bus.subscribe(new StatusMember(2)); - final CounterMember foo = new CounterMember("Foo"); - final CounterMember bar = new CounterMember("Bar"); + final MessageCollectorMember foo = new MessageCollectorMember("Foo"); + final MessageCollectorMember bar = new MessageCollectorMember("Bar"); bus.subscribe(foo); bus.publish(StartingData.of(LocalDateTime.now())); bus.publish(MessageData.of("Only Foo should see this")); diff --git a/data-bus/src/main/java/com/iluwatar/databus/members/CounterMember.java b/data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java similarity index 75% rename from data-bus/src/main/java/com/iluwatar/databus/members/CounterMember.java rename to data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java index d43bf4bab..a8ee94ad5 100644 --- a/data-bus/src/main/java/com/iluwatar/databus/members/CounterMember.java +++ b/data-bus/src/main/java/com/iluwatar/databus/members/MessageCollectorMember.java @@ -27,20 +27,25 @@ import com.iluwatar.databus.DataType; import com.iluwatar.databus.Member; import com.iluwatar.databus.data.MessageData; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.logging.Logger; /** - * Receiver of Data-Bus events. + * Receiver of Data-Bus events that collects the messages from each {@link MessageData}. * * @author Paul Campbell (pcampbell@kemitix.net) */ -public class CounterMember implements Member { +public class MessageCollectorMember implements Member { - private static final Logger LOGGER = Logger.getLogger(CounterMember.class.getName()); + private static final Logger LOGGER = Logger.getLogger(MessageCollectorMember.class.getName()); private final String name; - public CounterMember(String name) { + private List messages = new ArrayList<>(); + + public MessageCollectorMember(String name) { this.name = name; } @@ -53,5 +58,10 @@ public class CounterMember implements Member { private void handleEvent(MessageData data) { LOGGER.info(String.format("%s sees message %s", name, data.getMessage())); + messages.add(data.getMessage()); + } + + public List getMessages() { + return Collections.unmodifiableList(messages); } }