summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/util/debug/ArrayDebugger.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/util/debug/ArrayDebugger.java')
-rw-r--r--src/compiler/scala/tools/util/debug/ArrayDebugger.java94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/util/debug/ArrayDebugger.java b/src/compiler/scala/tools/util/debug/ArrayDebugger.java
new file mode 100644
index 0000000000..6bc6621ab4
--- /dev/null
+++ b/src/compiler/scala/tools/util/debug/ArrayDebugger.java
@@ -0,0 +1,94 @@
+/* ____ ____ ____ ____ ______ *\
+** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
+** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
+** /_____/\____/\___/\____/____/ **
+\* */
+
+// $Id$
+
+package scala.tools.util.debug;
+
+/** This class implements a debugger that appends arrays. */
+public class ArrayDebugger implements Debugger {
+
+ //########################################################################
+ // Public Constants
+
+ /** The unique instance of this class. */
+ public static final ArrayDebugger object = new ArrayDebugger();
+
+ //########################################################################
+ // Protected Constructors
+
+ /** Initializes this instance. */
+ protected ArrayDebugger() {}
+
+ //########################################################################
+ // Public Methods
+
+ public boolean canAppend(Object object) {
+ return object.getClass().isArray();
+ }
+
+ public void append(StringBuffer buffer, Object object) {
+ buffer.append('[');
+ if (object instanceof Object[]) {
+ Object[] array = (Object[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ Debug.append(buffer, array[i]);
+ }
+ } else if (object instanceof boolean[]) {
+ boolean[] array = (boolean[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof byte[]) {
+ byte[] array = (byte[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof short[]) {
+ short[] array = (short[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof char[]) {
+ char[] array = (char[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof int[]) {
+ int[] array = (int[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof long[]) {
+ long[] array = (long[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof float[]) {
+ float[] array = (float[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ } else if (object instanceof double[]) {
+ double[] array = (double[])object;
+ for (int i = 0; i < array.length; i++) {
+ if (i > 0) buffer.append(',');
+ buffer.append(array[i]);
+ }
+ }
+ buffer.append(']');
+ }
+
+ //########################################################################
+}