All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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