You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2010/01/28 18:09:56 UTC
svn commit: r904162 - in
/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging:
Address.java util/JAddr.java util/PyPrint.java
Author: rhs
Date: Thu Jan 28 17:09:55 2010
New Revision: 904162
URL: http://svn.apache.org/viewvc?rev=904162&view=rev
Log:
moved pprint from JAddr into separate utility class and use it from Address to implement a property toString
Added:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java
Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java?rev=904162&r1=904161&r2=904162&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java Thu Jan 28 17:09:55 2010
@@ -24,6 +24,8 @@
import org.apache.qpid.messaging.util.AddressParser;
+import static org.apache.qpid.messaging.util.PyPrint.pprint;
+
/**
* Address
@@ -64,4 +66,10 @@
return options;
}
+ public String toString()
+ {
+ return String.format("%s/%s; %s", pprint(name), pprint(subject),
+ pprint(options));
+ }
+
}
Modified: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java?rev=904162&r1=904161&r2=904162&view=diff
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java (original)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/JAddr.java Thu Jan 28 17:09:55 2010
@@ -22,15 +22,14 @@
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 @@
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();
- }
-
}
Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java?rev=904162&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/PyPrint.java Thu Jan 28 17:09:55 2010
@@ -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();
+ }
+
+}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org