17686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant/*
27686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * Copyright 2003-2009 OFFIS, Henri Tremblay
37686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant *
47686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * Licensed under the Apache License, Version 2.0 (the "License");
57686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * you may not use this file except in compliance with the License.
67686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * You may obtain a copy of the License at
77686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant *
87686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant *     http://www.apache.org/licenses/LICENSE-2.0
97686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant *
107686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * Unless required by applicable law or agreed to in writing, software
117686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * distributed under the License is distributed on an "AS IS" BASIS,
127686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * See the License for the specific language governing permissions and
147686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant * limitations under the License.
157686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant */
167686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnantpackage org.easymock.internal;
177686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant
187686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnantimport java.lang.reflect.Array;
197686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant
207686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnantpublic final class ArgumentToString {
217686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant
221b92188a82b01e76ac6e8ad5f997293c2a078adcMarshall Clow    // ///CLOVER:OFF
237686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant    private ArgumentToString() {
247686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant    }
257686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant    // ///CLOVER:ON
267686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant
277686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant    public static void appendArgument(Object value, StringBuffer buffer) {
287686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant        if (value == null) {
297686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("null");
307686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant        } else if (value instanceof String) {
317686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("\"");
327686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append(value);
337686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("\"");
347686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant        } else if (value instanceof Character) {
357686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("'");
367686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append(value);
377686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("'");
387686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant        } else if (value.getClass().isArray()) {
397686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("[");
407686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            for (int i = 0; i < Array.getLength(value); i++) {
417686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant                if (i > 0) {
427686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant                    buffer.append(", ");
43b2e2a8f6f3a1c47ea942bac99dd75c53be967954Howard Hinnant                }
447686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant                appendArgument(Array.get(value, i), buffer);
457686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            }
467686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append("]");
477686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant        } else {
487686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant            buffer.append(value);
497686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant        }
507686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant    }
517686add61e0a6c8e5abe28fb943cf2d698cd1266Howard Hinnant}
52