Counter doesn't count anything. Added ability to collect the messages
from the MessageData that it receives.
This commit is contained in:
parent
b7a6a018e0
commit
8b0c14cae0
@ -26,7 +26,7 @@ package com.iluwatar.databus;
|
|||||||
import com.iluwatar.databus.data.MessageData;
|
import com.iluwatar.databus.data.MessageData;
|
||||||
import com.iluwatar.databus.data.StartingData;
|
import com.iluwatar.databus.data.StartingData;
|
||||||
import com.iluwatar.databus.data.StoppingData;
|
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 com.iluwatar.databus.members.StatusMember;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -44,8 +44,8 @@ class App {
|
|||||||
final DataBus bus = DataBus.getInstance();
|
final DataBus bus = DataBus.getInstance();
|
||||||
bus.subscribe(new StatusMember(1));
|
bus.subscribe(new StatusMember(1));
|
||||||
bus.subscribe(new StatusMember(2));
|
bus.subscribe(new StatusMember(2));
|
||||||
final CounterMember foo = new CounterMember("Foo");
|
final MessageCollectorMember foo = new MessageCollectorMember("Foo");
|
||||||
final CounterMember bar = new CounterMember("Bar");
|
final MessageCollectorMember bar = new MessageCollectorMember("Bar");
|
||||||
bus.subscribe(foo);
|
bus.subscribe(foo);
|
||||||
bus.publish(StartingData.of(LocalDateTime.now()));
|
bus.publish(StartingData.of(LocalDateTime.now()));
|
||||||
bus.publish(MessageData.of("Only Foo should see this"));
|
bus.publish(MessageData.of("Only Foo should see this"));
|
||||||
|
@ -27,20 +27,25 @@ import com.iluwatar.databus.DataType;
|
|||||||
import com.iluwatar.databus.Member;
|
import com.iluwatar.databus.Member;
|
||||||
import com.iluwatar.databus.data.MessageData;
|
import com.iluwatar.databus.data.MessageData;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
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)
|
* @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;
|
private final String name;
|
||||||
|
|
||||||
public CounterMember(String name) {
|
private List<String> messages = new ArrayList<>();
|
||||||
|
|
||||||
|
public MessageCollectorMember(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,5 +58,10 @@ public class CounterMember implements Member {
|
|||||||
|
|
||||||
private void handleEvent(MessageData data) {
|
private void handleEvent(MessageData data) {
|
||||||
LOGGER.info(String.format("%s sees message %s", name, data.getMessage()));
|
LOGGER.info(String.format("%s sees message %s", name, data.getMessage()));
|
||||||
|
messages.add(data.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getMessages() {
|
||||||
|
return Collections.unmodifiableList(messages);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user