From 5c41ef4035bf7348e0e85377a5a2ef966f8f7c21 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Thu, 6 Aug 2009 16:53:17 +0000 Subject: QPID-2002 : Add toString functionality to Filters for displaying in Subscription arguments. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@801712 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/filter/JMSSelectorFilter.java | 6 +++++ .../qpid/server/filter/NoConsumerFilter.java | 6 +++++ .../qpid/server/filter/SimpleFilterManager.java | 28 +++++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) (limited to 'java') diff --git a/java/broker/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java b/java/broker/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java index 96c9353872..4adf5eb9ee 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java +++ b/java/broker/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java @@ -53,4 +53,10 @@ public class JMSSelectorFilter implements MessageFilter { return _selector; } + + @Override + public String toString() + { + return "JMSSelector("+_selector+")"; + } } diff --git a/java/broker/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java b/java/broker/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java index f1b3b2511d..65ddf19fc4 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java +++ b/java/broker/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java @@ -39,4 +39,10 @@ public class NoConsumerFilter implements MessageFilter return true; } + @Override + public String toString() + { + return "NoConsumer"; + } + } diff --git a/java/broker/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java b/java/broker/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java index cb738e1489..b037f57787 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java +++ b/java/broker/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java @@ -24,7 +24,6 @@ import java.util.concurrent.ConcurrentLinkedQueue; import org.apache.log4j.Logger; import org.apache.qpid.AMQException; -import org.apache.qpid.server.queue.AMQMessage; import org.apache.qpid.server.queue.Filterable; public class SimpleFilterManager implements FilterManager @@ -32,6 +31,7 @@ public class SimpleFilterManager implements FilterManager private final Logger _logger = Logger.getLogger(SimpleFilterManager.class); private final ConcurrentLinkedQueue> _filters; + private String _toString = ""; public SimpleFilterManager() { @@ -42,11 +42,13 @@ public class SimpleFilterManager implements FilterManager public void add(MessageFilter filter) { _filters.add(filter); + updateStringValue(); } public void remove(MessageFilter filter) { _filters.remove(filter); + updateStringValue(); } public boolean allAllow(Filterable msg) @@ -74,4 +76,28 @@ public class SimpleFilterManager implements FilterManager { return !_filters.isEmpty(); } + + + @Override + public String toString() + { + return _toString; + } + + private void updateStringValue() + { + StringBuilder toString = new StringBuilder(); + for (MessageFilter filter : _filters) + { + toString.append(filter.toString()); + toString.append(","); + } + + if (_filters.size() > 0) + { + //Remove the last ',' + toString.deleteCharAt(toString.length()-1); + } + _toString = toString.toString(); + } } -- cgit v1.2.1