langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java
changeset 3141 79c119fae7fb
parent 2978 a72220103e31
child 3543 58b72b096bcb
--- a/langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java	Tue Jun 16 10:46:37 2009 +0100
+++ b/langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java	Fri Jun 19 11:40:47 2009 -0700
@@ -573,6 +573,11 @@
             return visitor.visitNameAndType(this, data);
         }
 
+        @Override
+        public String toString() {
+            return "CONSTANT_NameAndType_info[name_index: " + name_index + ", type_index: " + type_index + "]";
+        }
+
         public final int name_index;
         public final int type_index;
     }
@@ -600,6 +605,11 @@
             return visitor.visitString(this, data);
         }
 
+        @Override
+        public String toString() {
+            return "CONSTANT_String_info[class_index: " + string_index + "]";
+        }
+
         public final int string_index;
     }
 
@@ -618,7 +628,19 @@
 
         @Override
         public String toString() {
-            return "CONSTANT_Utf8_info[value: " + value + "]";
+            if (value.length() < 32 && isPrintableAscii(value))
+                return "CONSTANT_Utf8_info[value: \"" + value + "\"]";
+            else
+                return "CONSTANT_Utf8_info[value: (" + value.length() + " chars)]";
+        }
+
+        static boolean isPrintableAscii(String s) {
+            for (int i = 0; i < s.length(); i++) {
+                char c = s.charAt(i);
+                if (c < 32 || c >= 127)
+                    return false;
+            }
+            return true;
         }
 
         public <R, D> R accept(Visitor<R, D> visitor, D data) {