1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/*
2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors
3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License.
4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */
5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.internal.creation;
6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.lang.reflect.Method;
8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.invocation.MockitoMethod;
10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic class DelegatingMethod implements MockitoMethod {
12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    private final Method method;
14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public DelegatingMethod(Method method) {
16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        assert method != null : "Method cannot be null";
17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        this.method = method;
18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public Class<?>[] getExceptionTypes() {
21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method.getExceptionTypes();
22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public Method getJavaMethod() {
25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method;
26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public String getName() {
29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method.getName();
30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public Class<?>[] getParameterTypes() {
33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method.getParameterTypes();
34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public Class<?> getReturnType() {
37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method.getReturnType();
38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public boolean isVarArgs() {
41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method.isVarArgs();
42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    @Override
45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public int hashCode() {
46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return 1;
47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
49e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    @Override
50e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    public boolean equals(Object obj) {
51e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson        return method.equals(obj);
52e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    }
53e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}