home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / lang / reflect / Method.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.2 KB  |  120 lines

  1. package java.lang.reflect;
  2.  
  3. public final class Method extends AccessibleObject implements Member {
  4.    private Class clazz;
  5.    private int slot;
  6.    private String name;
  7.    private Class returnType;
  8.    private Class[] parameterTypes;
  9.    private Class[] exceptionTypes;
  10.    private int modifiers;
  11.  
  12.    private Method() {
  13.    }
  14.  
  15.    public Class getDeclaringClass() {
  16.       return this.clazz;
  17.    }
  18.  
  19.    public String getName() {
  20.       return this.name;
  21.    }
  22.  
  23.    public int getModifiers() {
  24.       return this.modifiers;
  25.    }
  26.  
  27.    public Class getReturnType() {
  28.       return this.returnType;
  29.    }
  30.  
  31.    public Class[] getParameterTypes() {
  32.       return copy(this.parameterTypes);
  33.    }
  34.  
  35.    public Class[] getExceptionTypes() {
  36.       return copy(this.exceptionTypes);
  37.    }
  38.  
  39.    public boolean equals(Object var1) {
  40.       if (var1 != null && var1 instanceof Method) {
  41.          Method var2 = (Method)var1;
  42.          if (this.getDeclaringClass() == var2.getDeclaringClass() && this.getName().equals(var2.getName())) {
  43.             Class[] var3 = this.parameterTypes;
  44.             Class[] var4 = var2.parameterTypes;
  45.             if (var3.length == var4.length) {
  46.                for(int var5 = 0; var5 < var3.length; ++var5) {
  47.                   if (var3[var5] != var4[var5]) {
  48.                      return false;
  49.                   }
  50.                }
  51.  
  52.                return true;
  53.             }
  54.          }
  55.       }
  56.  
  57.       return false;
  58.    }
  59.  
  60.    public int hashCode() {
  61.       return this.getDeclaringClass().getName().hashCode() ^ this.getName().hashCode();
  62.    }
  63.  
  64.    public String toString() {
  65.       try {
  66.          StringBuffer var1 = new StringBuffer();
  67.          int var2 = this.getModifiers();
  68.          if (var2 != 0) {
  69.             var1.append(Modifier.toString(var2) + " ");
  70.          }
  71.  
  72.          var1.append(Field.getTypeName(this.getReturnType()) + " ");
  73.          var1.append(Field.getTypeName(this.getDeclaringClass()) + ".");
  74.          var1.append(this.getName() + "(");
  75.          Class[] var3 = this.parameterTypes;
  76.  
  77.          for(int var4 = 0; var4 < var3.length; ++var4) {
  78.             var1.append(Field.getTypeName(var3[var4]));
  79.             if (var4 < var3.length - 1) {
  80.                var1.append(",");
  81.             }
  82.          }
  83.  
  84.          var1.append(")");
  85.          Class[] var5 = this.exceptionTypes;
  86.          if (var5.length > 0) {
  87.             var1.append(" throws ");
  88.  
  89.             for(int var6 = 0; var6 < var5.length; ++var6) {
  90.                var1.append(var5[var6].getName());
  91.                if (var6 < var5.length - 1) {
  92.                   var1.append(",");
  93.                }
  94.             }
  95.          }
  96.  
  97.          return var1.toString();
  98.       } catch (Exception var7) {
  99.          return "<" + var7 + ">";
  100.       }
  101.    }
  102.  
  103.    public native Object invoke(Object var1, Object[] var2) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException;
  104.  
  105.    static Class[] copy(Class[] var0) {
  106.       int var1 = var0.length;
  107.       if (var1 == 0) {
  108.          return var0;
  109.       } else {
  110.          Class[] var2 = new Class[var1];
  111.  
  112.          for(int var3 = 0; var3 < var1; ++var3) {
  113.             var2[var3] = var0[var3];
  114.          }
  115.  
  116.          return var2;
  117.       }
  118.    }
  119. }
  120.