home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / lang / reflect / Method.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  2.6 KB  |  117 lines

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