Counter doesn't count anything. Added ability to collect the messages
from the MessageData that it receives.
This commit is contained in:
		@@ -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"));
 | 
			
		||||
 
 | 
			
		||||
@@ -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<String> 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<String> getMessages() {
 | 
			
		||||
    return Collections.unmodifiableList(messages);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user