1/*
2 * Copyright (c) 2007 Mockito contributors
3 * This program is made available under the terms of the MIT License.
4 */
5package org.mockito.internal.progress;
6
7import java.util.*;
8
9import static org.mockito.internal.util.Primitives.defaultValueForPrimitiveOrWrapper;
10import static org.mockito.internal.util.Primitives.isPrimitiveOrWrapper;
11
12@SuppressWarnings("unchecked")
13public class HandyReturnValues {
14
15    public byte returnZero() {
16        return 0;
17    }
18
19    public char returnChar() {
20        return 0;
21    }
22
23    public <T> T returnNull() {
24        return null;
25    }
26
27    public boolean returnFalse() {
28        return false;
29    }
30
31    public String returnString() {
32        return "";
33    }
34
35    public <T> T returnFor(Class<T> clazz) {
36        // explicitly return null if type is not a primitive or a wrapper
37        if (isPrimitiveOrWrapper(clazz)) {
38            return defaultValueForPrimitiveOrWrapper(clazz);
39        }
40        return null;
41    }
42
43    public Map returnMap() {
44        return new HashMap();
45    }
46
47    public List returnList() {
48        return new LinkedList();
49    }
50
51    public Set returnSet() {
52        return new HashSet();
53    }
54
55    public <T> T returnFor(T instance) {
56        return instance == null ? null : (T) returnFor(instance.getClass());
57    }
58}