root/trunk/src/java/org/jcoderz/commons/util/ArraysUtil.java

Revision 1011, 3.7 kB (checked in by amandel, 7 months ago)

Aligned svn keyword settings.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1/*
2 * $Id$
3 *
4 * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 *    * Redistributions of source code must retain the above copyright
11 *      notice, this list of conditions and the following disclaimer.
12 *    * Redistributions in binary form must reproduce the above
13 *      copyright notice, this list of conditions and the following
14 *      disclaimer in the documentation and/or other materials
15 *      provided with the distribution.
16 *    * Neither the name of the jCoderZ.org Project nor the names of
17 *      its contributors may be used to endorse or promote products
18 *      derived from this software without specific prior written
19 *      permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33package org.jcoderz.commons.util;
34
35
36
37/**
38 * This class contains a static factory that allows arrays to be viewed as
39 * lists.
40 *
41 * @author Michael Griffel
42 */
43public final class ArraysUtil
44{
45   /**
46    * No constructor for util class.
47    */
48   private ArraysUtil ()
49   {
50      // No instances allowed - contains only static utility functions.
51   }
52   
53   
54   /**
55    * Returns a string representation of the contents of the specified array.
56    * If the array contains other arrays as elements, they are converted
57    * to strings by the {@link Object#toString}method inherited
58    * from <tt>Object</tt>, which describes their <i>identities</i>
59    * rather than their contents.
60    * <p>
61    * The value returned by this method is equal to the value that would be
62    * returned by <tt>Arrays.asList(a).toString()</tt>, unless <tt>array</tt>
63    * is <tt>null</tt>, in which case <tt>"null"</tt> is returned.
64    * <p>
65    * This method is useful to dump the content of the array in a tracing
66    * method, e.g.:
67    * <pre>
68    * logger.entering(CLASSNAME, "foo(Object[])", ArraysUtil.toString(array));
69    * </pre>
70    * @param array The array whose string representation to return. 
71    * @return A string representation of <tt>array</tt>.
72    */
73   public static String toString (Object[] array)
74   {
75      final String result;
76     
77      if (array == null)
78      {
79         result = "null";
80      }
81      else if (array.length == 0)
82      {
83         result = "[]";
84      }
85      else
86      {
87         final StringBuffer buf = new StringBuffer();
88         for (int i = 0; i < array.length; i++)
89         {
90            if (i == 0)
91            {
92               buf.append('[');
93            }
94            else
95            {
96               buf.append(", ");
97            }
98            if (array[i] instanceof Object[]) 
99            {
100               buf.append(ArraysUtil.toString((Object[]) array[i]));
101            }
102            else
103            {
104               buf.append(String.valueOf(array[i]));
105            }
106         }
107         buf.append(']');
108         result = buf.toString();
109      }
110      return result;
111   }
112}
Note: See TracBrowser for help on using the browser.