summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2010-01-28 17:09:55 +0000
committerRafael H. Schloming <rhs@apache.org>2010-01-28 17:09:55 +0000
commitfe2db915235fdca1c8ed2335e69127b43ee5b835 (patch)
tree07045ae05666a9bb169ed6f8c352e5cb92fdc678
parentb862462df1b77c69a0688d7197947d780c36eab0 (diff)
downloadqpid-python-fe2db915235fdca1c8ed2335e69127b43ee5b835.tar.gz
moved pprint from JAddr into separate utility class and use it from Address to implement a property toString
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@904162 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/common/src/main/java/org/apache/qpid/messaging/Address.java8
-rw-r--r--java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java114
-rw-r--r--java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java146
3 files changed, 156 insertions, 112 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/messaging/Address.java b/java/common/src/main/java/org/apache/qpid/messaging/Address.java
index 9187239497..2c7fe7b8ed 100644
--- a/java/common/src/main/java/org/apache/qpid/messaging/Address.java
+++ b/java/common/src/main/java/org/apache/qpid/messaging/Address.java
@@ -24,6 +24,8 @@ import java.util.Map;
import org.apache.qpid.messaging.util.AddressParser;
+import static org.apache.qpid.messaging.util.PyPrint.pprint;
+
/**
* Address
@@ -64,4 +66,10 @@ public class Address
return options;
}
+ public String toString()
+ {
+ return String.format("%s/%s; %s", pprint(name), pprint(subject),
+ pprint(options));
+ }
+
}
diff --git a/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java b/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java
index 63d2de21b2..93df052af1 100644
--- a/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java
+++ b/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java
@@ -22,15 +22,14 @@ package org.apache.qpid.messaging.util;
import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
-import java.util.Map;
import org.apache.qpid.messaging.Address;
import org.apache.qpid.messaging.util.ParseError;
import org.apache.qpid.messaging.util.Token;
+import static org.apache.qpid.messaging.util.PyPrint.pprint;
+
/**
* JAddr
@@ -95,113 +94,4 @@ public class JAddr
pprint(addr.getOptions()));
}
- private static String pprint(Object obj)
- {
- if (obj instanceof Map)
- {
- return pprint_map((Map) obj);
- }
- else if (obj instanceof List)
- {
- return pprint_list((List) obj);
- }
- else if (obj instanceof String)
- {
- return pprint_string((String) obj);
- }
- else if (obj instanceof Boolean)
- {
- return ((Boolean) obj).booleanValue() ? "True" : "False";
- }
- else if (obj == null)
- {
- return "None";
- }
- else
- {
- return obj.toString();
- }
- }
-
- private static String indent(String st)
- {
- return " " + st.replace("\n", "\n ");
- }
-
- private static String pprint_map(Map<Object,Object> map)
- {
- List<String> items = new ArrayList<String>();
- for (Map.Entry me : map.entrySet())
- {
- items.add(String.format("%s: %s", pprint(me.getKey()),
- pprint(me.getValue())));
- }
- Collections.sort(items);
- return pprint_items("{", items, "}");
- }
-
- private static String pprint_list(List list)
- {
- List<String> items = new ArrayList<String>();
- for (Object o : list)
- {
- items.add(pprint(o));
- }
- return pprint_items("[", items, "]");
- }
-
- private static String pprint_items(String start, List<String> items,
- String end)
- {
- StringBuilder result = new StringBuilder();
- for (String item : items)
- {
- if (result.length() > 0)
- {
- result.append(",\n");
- }
- result.append(indent(item));
- }
-
- if (result.length() > 0)
- {
- return String.format("%s\n%s\n%s", start, result, end);
- }
- else
- {
- return String.format("%s%s", start, end);
- }
- }
-
- private static String pprint_string(String st)
- {
- StringBuilder result = new StringBuilder();
- result.append('\'');
- for (int i = 0; i < st.length(); i++)
- {
- char c = st.charAt(i);
- switch (c)
- {
- case '\'':
- result.append("\\'");
- break;
- case '\n':
- result.append("\\n");
- break;
- default:
- if (c >= 0x80)
- {
- result.append(String.format("\\u%04x", (int)c));
- }
- else
- {
- result.append(c);
- }
- break;
- }
- }
- result.append('\'');
- return result.toString();
- }
-
}
diff --git a/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java b/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java
new file mode 100644
index 0000000000..ef6c724371
--- /dev/null
+++ b/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java
@@ -0,0 +1,146 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.messaging.util;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * PyPrint
+ *
+ */
+
+public class PyPrint
+{
+
+ public static String pprint(Object obj)
+ {
+ if (obj instanceof Map)
+ {
+ return pprint_map((Map) obj);
+ }
+ else if (obj instanceof List)
+ {
+ return pprint_list((List) obj);
+ }
+ else if (obj instanceof String)
+ {
+ return pprint_string((String) obj);
+ }
+ else if (obj instanceof Boolean)
+ {
+ return ((Boolean) obj).booleanValue() ? "True" : "False";
+ }
+ else if (obj == null)
+ {
+ return "None";
+ }
+ else
+ {
+ return obj.toString();
+ }
+ }
+
+ private static String indent(String st)
+ {
+ return " " + st.replace("\n", "\n ");
+ }
+
+ private static String pprint_map(Map<Object,Object> map)
+ {
+ List<String> items = new ArrayList<String>();
+ for (Map.Entry me : map.entrySet())
+ {
+ items.add(String.format("%s: %s", pprint(me.getKey()),
+ pprint(me.getValue())));
+ }
+ Collections.sort(items);
+ return pprint_items("{", items, "}");
+ }
+
+ private static String pprint_list(List list)
+ {
+ List<String> items = new ArrayList<String>();
+ for (Object o : list)
+ {
+ items.add(pprint(o));
+ }
+ return pprint_items("[", items, "]");
+ }
+
+ private static String pprint_items(String start, List<String> items,
+ String end)
+ {
+ StringBuilder result = new StringBuilder();
+ for (String item : items)
+ {
+ if (result.length() > 0)
+ {
+ result.append(",\n");
+ }
+ result.append(indent(item));
+ }
+
+ if (result.length() > 0)
+ {
+ return String.format("%s\n%s\n%s", start, result, end);
+ }
+ else
+ {
+ return String.format("%s%s", start, end);
+ }
+ }
+
+ private static String pprint_string(String st)
+ {
+ StringBuilder result = new StringBuilder();
+ result.append('\'');
+ for (int i = 0; i < st.length(); i++)
+ {
+ char c = st.charAt(i);
+ switch (c)
+ {
+ case '\'':
+ result.append("\\'");
+ break;
+ case '\n':
+ result.append("\\n");
+ break;
+ default:
+ if (c >= 0x80)
+ {
+ result.append(String.format("\\u%04x", (int)c));
+ }
+ else
+ {
+ result.append(c);
+ }
+ break;
+ }
+ }
+ result.append('\'');
+ return result.toString();
+ }
+
+}