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

  1. package java.lang;
  2.  
  3. import java.io.InputStream;
  4. import java.io.Serializable;
  5. import java.lang.reflect.Constructor;
  6. import java.lang.reflect.Field;
  7. import java.lang.reflect.Method;
  8. import java.net.URL;
  9.  
  10. public final class Class implements Serializable {
  11.    private Class() {
  12.    }
  13.  
  14.    public String toString() {
  15.       return (this.isInterface() ? "interface " : (this.isPrimitive() ? "" : "class ")) + this.getName();
  16.    }
  17.  
  18.    public static native Class forName(String var0) throws ClassNotFoundException;
  19.  
  20.    public native Object newInstance() throws InstantiationException, IllegalAccessException;
  21.  
  22.    public native boolean isInstance(Object var1);
  23.  
  24.    public native boolean isAssignableFrom(Class var1);
  25.  
  26.    public native boolean isInterface();
  27.  
  28.    public native boolean isArray();
  29.  
  30.    public native boolean isPrimitive();
  31.  
  32.    public native String getName();
  33.  
  34.    public native ClassLoader getClassLoader();
  35.  
  36.    public native Class getSuperclass();
  37.  
  38.    public native Class[] getInterfaces();
  39.  
  40.    public native Class getComponentType();
  41.  
  42.    public native int getModifiers();
  43.  
  44.    public native Object[] getSigners();
  45.  
  46.    native void setSigners(Object[] var1);
  47.  
  48.    public Class getDeclaringClass() {
  49.       return null;
  50.    }
  51.  
  52.    public Class[] getClasses() {
  53.       return new Class[0];
  54.    }
  55.  
  56.    public Field[] getFields() throws SecurityException {
  57.       this.checkMemberAccess(0);
  58.       return this.getFields0(0);
  59.    }
  60.  
  61.    public Method[] getMethods() throws SecurityException {
  62.       this.checkMemberAccess(0);
  63.       return this.getMethods0(0);
  64.    }
  65.  
  66.    public Constructor[] getConstructors() throws SecurityException {
  67.       this.checkMemberAccess(0);
  68.       return this.getConstructors0(0);
  69.    }
  70.  
  71.    public Field getField(String var1) throws NoSuchFieldException, SecurityException {
  72.       this.checkMemberAccess(0);
  73.       return this.getField0(var1, 0);
  74.    }
  75.  
  76.    public Method getMethod(String var1, Class[] var2) throws NoSuchMethodException, SecurityException {
  77.       this.checkMemberAccess(0);
  78.       return this.getMethod0(var1, var2, 0);
  79.    }
  80.  
  81.    public Constructor getConstructor(Class[] var1) throws NoSuchMethodException, SecurityException {
  82.       this.checkMemberAccess(0);
  83.       return this.getConstructor0(var1, 0);
  84.    }
  85.  
  86.    public Class[] getDeclaredClasses() throws SecurityException {
  87.       this.checkMemberAccess(1);
  88.       return new Class[0];
  89.    }
  90.  
  91.    public Field[] getDeclaredFields() throws SecurityException {
  92.       this.checkMemberAccess(1);
  93.       return this.getFields0(1);
  94.    }
  95.  
  96.    public Method[] getDeclaredMethods() throws SecurityException {
  97.       this.checkMemberAccess(1);
  98.       return this.getMethods0(1);
  99.    }
  100.  
  101.    public Constructor[] getDeclaredConstructors() throws SecurityException {
  102.       this.checkMemberAccess(1);
  103.       return this.getConstructors0(1);
  104.    }
  105.  
  106.    public Field getDeclaredField(String var1) throws NoSuchFieldException, SecurityException {
  107.       this.checkMemberAccess(1);
  108.       return this.getField0(var1, 1);
  109.    }
  110.  
  111.    public Method getDeclaredMethod(String var1, Class[] var2) throws NoSuchMethodException, SecurityException {
  112.       this.checkMemberAccess(1);
  113.       return this.getMethod0(var1, var2, 1);
  114.    }
  115.  
  116.    public Constructor getDeclaredConstructor(Class[] var1) throws NoSuchMethodException, SecurityException {
  117.       this.checkMemberAccess(1);
  118.       return this.getConstructor0(var1, 1);
  119.    }
  120.  
  121.    public InputStream getResourceAsStream(String var1) {
  122.       var1 = this.resolveName(var1);
  123.       ClassLoader var2 = this.getClassLoader();
  124.       return var2 == null ? ClassLoader.getSystemResourceAsStream(var1) : var2.getResourceAsStream(var1);
  125.    }
  126.  
  127.    public URL getResource(String var1) {
  128.       var1 = this.resolveName(var1);
  129.       ClassLoader var2 = this.getClassLoader();
  130.       return var2 == null ? ClassLoader.getSystemResource(var1) : var2.getResource(var1);
  131.    }
  132.  
  133.    static native Class getPrimitiveClass(String var0);
  134.  
  135.    private void checkMemberAccess(int var1) {
  136.       SecurityManager var2 = System.getSecurityManager();
  137.       if (var2 != null) {
  138.          var2.checkMemberAccess(this, var1);
  139.       }
  140.  
  141.    }
  142.  
  143.    private String resolveName(String var1) {
  144.       if (var1 == null) {
  145.          return var1;
  146.       } else {
  147.          if (!var1.startsWith("/")) {
  148.             Class var2;
  149.             for(var2 = this; var2.isArray(); var2 = var2.getComponentType()) {
  150.             }
  151.  
  152.             String var3 = var2.getName();
  153.             int var4 = var3.lastIndexOf(46);
  154.             if (var4 != -1) {
  155.                var1 = var3.substring(0, var4).replace('.', '/') + "/" + var1;
  156.             }
  157.          } else {
  158.             var1 = var1.substring(1);
  159.          }
  160.  
  161.          return var1;
  162.       }
  163.    }
  164.  
  165.    private native Field[] getFields0(int var1);
  166.  
  167.    private native Method[] getMethods0(int var1);
  168.  
  169.    private native Constructor[] getConstructors0(int var1);
  170.  
  171.    private native Field getField0(String var1, int var2);
  172.  
  173.    private native Method getMethod0(String var1, Class[] var2, int var3);
  174.  
  175.    private native Constructor getConstructor0(Class[] var1, int var2);
  176. }
  177.