1 package org.sapia.soto.jmx; 2 3 import java.lang.reflect.Method ; 4 5 6 16 public class MethodInfo { 17 private String _name; 18 private String [] _params; 19 private int _hashCode; 20 21 26 public MethodInfo(Method method) { 27 this(method.getName(), method.getParameterTypes()); 28 } 29 30 38 public MethodInfo(String name, Class [] params) { 39 _name = name; 40 _hashCode = name.hashCode(); 41 _params = paramsAsString(params); 42 } 43 44 52 public MethodInfo(String name, String [] sig) { 53 _name = name; 54 _hashCode = name.hashCode(); 55 _params = sig; 56 } 57 58 public int hashCode() { 59 return _hashCode; 60 } 61 62 public boolean equals(Object object) { 63 try { 64 MethodInfo info = (MethodInfo) object; 65 66 return _name.equals(info._name) && 67 (_params.length == info._params.length) && paramsEqual(info._params); 68 } catch (ClassCastException e) { 69 return false; 70 } 71 } 72 73 static String [] paramsAsString(Class [] params) { 74 String [] sig = new String [params.length]; 75 76 for (int i = 0; i < params.length; i++) { 77 sig[i] = params[i].getName(); 78 } 79 80 return sig; 81 } 82 83 private boolean paramsEqual(String [] params) { 84 for (int i = 0; i < params.length; i++) { 85 if (!_params[i].equals(params[i])) { 86 return false; 87 } 88 } 89 90 return true; 91 } 92 } 93 | Popular Tags |