Home | History | Annotate | Download | only in creation
      1 /*
      2  * Copyright (c) 2007 Mockito contributors
      3  * This program is made available under the terms of the MIT License.
      4  */
      5 package org.mockito.internal.creation;
      6 
      7 import org.mockito.internal.invocation.MockitoMethod;
      8 
      9 import java.lang.reflect.Method;
     10 import java.lang.reflect.Modifier;
     11 
     12 public class DelegatingMethod implements MockitoMethod {
     13 
     14     private final Method method;
     15 
     16     public DelegatingMethod(Method method) {
     17         assert method != null : "Method cannot be null";
     18         this.method = method;
     19     }
     20 
     21     public Class<?>[] getExceptionTypes() {
     22         return method.getExceptionTypes();
     23     }
     24 
     25     public Method getJavaMethod() {
     26         return method;
     27     }
     28 
     29     public String getName() {
     30         return method.getName();
     31     }
     32 
     33     public Class<?>[] getParameterTypes() {
     34         return method.getParameterTypes();
     35     }
     36 
     37     public Class<?> getReturnType() {
     38         return method.getReturnType();
     39     }
     40 
     41     public boolean isVarArgs() {
     42         return method.isVarArgs();
     43     }
     44 
     45     public boolean isAbstract() {
     46         return (method.getModifiers() & Modifier.ABSTRACT) != 0;
     47     }
     48 
     49     /**
     50      * @return True if the input object is a DelegatingMethod which has an internal Method which is equal to the internal Method of this DelegatingMethod,
     51      * or if the input object is a Method which is equal to the internal Method of this DelegatingMethod.
     52      */
     53     @Override
     54     public boolean equals(Object o) {
     55         if (this == o) {
     56             return true;
     57         }
     58         if (o instanceof DelegatingMethod) {
     59             DelegatingMethod that = (DelegatingMethod) o;
     60             return method.equals(that.method);
     61         } else {
     62             return method.equals(o);
     63         }
     64     }
     65 
     66     @Override
     67     public int hashCode() {
     68         return method.hashCode();
     69     }
     70 }
     71