1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 package com.gargoylesoftware.base.trace;
39
40 import java.util.Collection;
41 import java.util.Iterator;
42 import java.util.Map;
43
44 /***
45 * A collection of utility methods dealing with tracing.
46 *
47 * @version $Revision: 1.4 $
48 * @author <a href="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a>
49 */
50 public class TraceUtil {
51
52 private static final String LINE_SEPARATOR
53 = System.getProperty("line.separator");
54
55 private TraceUtil(){
56 }
57
58 /***
59 * Dump a collection to the specified TraceChannel.
60 * @param channel The channel to write the information to.
61 * @param collection The data to write.
62 */
63 public static void trace( final TraceChannel channel,
64 final Collection collection ) {
65
66 final StringBuffer buffer = new StringBuffer();
67 buffer.append("collection=[");
68 buffer.append(collection.getClass().getName());
69 buffer.append("]");
70
71 final Iterator iterator = collection.iterator();
72 while( iterator.hasNext() ) {
73 buffer.append( LINE_SEPARATOR );
74 buffer.append( " " );
75 buffer.append( iterator.next() );
76 }
77
78 Trace.println( channel, buffer.toString() );
79 }
80
81 /***
82 * Dump a map to the specified TraceChannel.
83 * @param channel The channel to write the information to.
84 * @param collection The data to write.
85 */
86 public static void trace( final TraceChannel channel,
87 final Map collection ) {
88 Map.Entry entry;
89
90 final StringBuffer buffer = new StringBuffer();
91 buffer.append("map=[");
92 buffer.append(collection.getClass().getName());
93 buffer.append("]");
94
95 final Iterator iterator = collection.entrySet().iterator();
96 while( iterator.hasNext() ) {
97 entry = (Map.Entry)iterator.next();
98 buffer.append( LINE_SEPARATOR );
99 buffer.append( " " );
100 buffer.append( entry.getKey() );
101 buffer.append( "=" );
102 buffer.append( entry.getValue() );
103 }
104
105 Trace.println( channel, buffer.toString() );
106 }
107
108 /***
109 * Dump an object array to the specified TraceChannel.
110 * @param channel The channel to write the information to.
111 * @param array The data to write.
112 */
113 public static void trace( final TraceChannel channel,
114 final Object[] array ) {
115 final StringBuffer buffer = new StringBuffer();
116 buffer.append("Array size=[");
117 buffer.append(array.length);
118 buffer.append("]");
119 int i;
120 for( i=0; i<array.length; i++ ) {
121 buffer.append(LINE_SEPARATOR);
122 buffer.append(" array[");
123 buffer.append(i);
124 buffer.append("]=");
125 buffer.append(array[i]);
126 }
127
128 Trace.println( channel, buffer.toString() );
129 }
130 }
131