diff --git a/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java b/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java new file mode 100644 index 00000000..2f41b89f --- /dev/null +++ b/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java @@ -0,0 +1,39 @@ +package org.dna.mqtt.moquette.messaging.spi.impl; + +import java.util.ArrayList; +import java.util.List; + +/** + * Represents a tree of published topics + * + * @author andrea + */ +public class SubscriptionsStore { + + private List subscriptions = new ArrayList(); + + public void add(Subscription newSubscription) { + if (subscriptions.contains(newSubscription)) { + return; + } + subscriptions.add(newSubscription); + } + + public List matches(String topic) { + List m = new ArrayList(); + for (Subscription sub : subscriptions) { + if (sub.match(topic)) { + m.add(sub); + } + } + return m; + } + + public boolean contains(Subscription sub) { + return subscriptions.contains(sub); + } + + public int size() { + return subscriptions.size(); + } +}