From 3deb903f3c8a30472d499057ed943d685f911c84 Mon Sep 17 00:00:00 2001 From: andrea Date: Sun, 21 Jun 2015 15:36:41 +0200 Subject: [PATCH] Minor change, modified dumpTree to graphicaly show a tree --- .../subscriptions/SubscriptionsStore.java | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/broker/src/main/java/org/eclipse/moquette/spi/impl/subscriptions/SubscriptionsStore.java b/broker/src/main/java/org/eclipse/moquette/spi/impl/subscriptions/SubscriptionsStore.java index 918f6de2..2404b8c4 100644 --- a/broker/src/main/java/org/eclipse/moquette/spi/impl/subscriptions/SubscriptionsStore.java +++ b/broker/src/main/java/org/eclipse/moquette/spi/impl/subscriptions/SubscriptionsStore.java @@ -44,7 +44,7 @@ public class SubscriptionsStore { } public static interface IVisitor { - void visit(TreeNode node); + void visit(TreeNode node, int deep); T getResult(); } @@ -53,13 +53,22 @@ public class SubscriptionsStore { String s = ""; - public void visit(TreeNode node) { + public void visit(TreeNode node, int deep) { String subScriptionsStr = ""; + String indentTabs = indentTabs(deep); for (Subscription sub : node.m_subscriptions) { - subScriptionsStr += sub.toString(); + subScriptionsStr += indentTabs + sub.toString() + "\n"; } s += node.getToken() == null ? "" : node.getToken().toString(); - s += subScriptionsStr + "\n"; + s += "\n" + (node.m_subscriptions.isEmpty() ? indentTabs : "") + subScriptionsStr /*+ "\n"*/; + } + + private String indentTabs(int deep) { + String s = ""; + for (int i=0; i < deep; i++) { + s += "\t"; + } + return s; } public String getResult() { @@ -71,7 +80,7 @@ public class SubscriptionsStore { private List m_allSubscriptions = new ArrayList(); - public void visit(TreeNode node) { + public void visit(TreeNode node, int deep) { m_allSubscriptions.addAll(node.subscriptions()); } @@ -111,7 +120,7 @@ public class SubscriptionsStore { } private TreeNode findMatchingNode(String topic) { - List tokens = new ArrayList(); + List tokens = new ArrayList<>(); try { tokens = parseTopic(topic); } catch (ParseException ex) { @@ -169,7 +178,7 @@ public class SubscriptionsStore { */ public void clearAllSubscriptions() { SubscriptionTreeCollector subsCollector = new SubscriptionTreeCollector(); - bfsVisit(subscriptions, subsCollector); + bfsVisit(subscriptions, subsCollector, 0); List allSubscriptions = subsCollector.getResult(); for (Subscription subscription : allSubscriptions) { @@ -232,17 +241,17 @@ public class SubscriptionsStore { public String dumpTree() { DumpTreeVisitor visitor = new DumpTreeVisitor(); - bfsVisit(subscriptions, visitor); + bfsVisit(subscriptions, visitor, 0); return visitor.getResult(); } - private void bfsVisit(TreeNode node, IVisitor visitor) { + private void bfsVisit(TreeNode node, IVisitor visitor, int deep) { if (node == null) { return; } - visitor.visit(node); + visitor.visit(node, deep); for (TreeNode child : node.m_children) { - bfsVisit(child, visitor); + bfsVisit(child, visitor, ++deep); } }