fun.mike.memo.alpha.StaticQueueManager Maven / Gradle / Ivy
The newest version!
package fun.mike.memo.alpha;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
public class StaticQueueManager implements QueueManager {
private static Map> messagesByQueue =
Collections.synchronizedMap(new LinkedHashMap<>());
public static void clear() {
messagesByQueue.clear();
}
public static Map> getMessagesByQueue() {
Map> result = new LinkedHashMap<>();
for (Map.Entry> entry : messagesByQueue.entrySet()) {
result.put(entry.getKey(), new LinkedList<>(entry.getValue()));
}
return result;
}
public void sendMessage(String queueName, String message) {
if (!messagesByQueue.containsKey(queueName)) {
messagesByQueue.put(queueName, new LinkedList<>());
}
messagesByQueue.get(queueName).add(message);
}
public void sendMessage(String queueName, String message, String jmsType) {
System.out.println("TODO: What to do?");
if (!messagesByQueue.containsKey(queueName)) {
messagesByQueue.put(queueName, new LinkedList<>());
}
messagesByQueue.get(queueName).add(message);
}
public List getMessages(String queueName) {
if (messagesByQueue.containsKey(queueName)) {
return new LinkedList<>(messagesByQueue.get(queueName));
}
return new LinkedList<>();
}
public int countMessages(String queueName) {
return getMessages(queueName).size();
}
public List consumeMessages(String queueName) {
List messages = new LinkedList<>(messagesByQueue.get(queueName));
messagesByQueue.remove(queueName);
return messages;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy