package com.mossle.simulator.jms;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Topic;
public class ProxyTopic implements Topic {
private Map<MessageConsumer, List<String>> map = new HashMap<MessageConsumer, List<String>>();
private String name;
public ProxyTopic(String name) {
this.name = name;
}
public String getTopicName() throws JMSException {
return name;
}
public String toString() {
return name;
}
// ~ ==================================================
public void sendMessage(String text) {
for (Map.Entry<MessageConsumer, List<String>> entry : map.entrySet()) {
entry.getValue().add(text);
}
}
public void addConsumer(MessageConsumer messageConsumer) {
map.put(messageConsumer, new ArrayList<String>());
}
public void removeConsumer(MessageConsumer messageConsumer) {
map.remove(messageConsumer);
}
public String getMessage(MessageConsumer messageConsumer) {
List<String> list = map.get(messageConsumer);
if (list.isEmpty()) {
return null;
}
return list.remove(0);
}
}