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

  1. package sun.applet;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.ObjectInputStream;
  6. import java.io.ObjectStreamClass;
  7. import java.io.StreamCorruptedException;
  8. import java.lang.reflect.Array;
  9.  
  10. class AppletObjectInputStream extends ObjectInputStream {
  11.    private AppletClassLoader loader;
  12.  
  13.    public AppletObjectInputStream(InputStream var1, AppletClassLoader var2) throws IOException, StreamCorruptedException {
  14.       super(var1);
  15.       if (var2 == null) {
  16.          throw new AppletIllegalArgumentException("appletillegalargumentexception.objectinputstream");
  17.       } else {
  18.          this.loader = var2;
  19.       }
  20.    }
  21.  
  22.    private Class primitiveType(char var1) {
  23.       switch (var1) {
  24.          case 'B':
  25.             return Byte.TYPE;
  26.          case 'C':
  27.             return Character.TYPE;
  28.          case 'D':
  29.             return Double.TYPE;
  30.          case 'F':
  31.             return Float.TYPE;
  32.          case 'I':
  33.             return Integer.TYPE;
  34.          case 'J':
  35.             return Long.TYPE;
  36.          case 'S':
  37.             return Short.TYPE;
  38.          case 'Z':
  39.             return Boolean.TYPE;
  40.          default:
  41.             return null;
  42.       }
  43.    }
  44.  
  45.    protected Class resolveClass(ObjectStreamClass var1) throws IOException, ClassNotFoundException {
  46.       String var2 = var1.getName();
  47.       if (!var2.startsWith("[")) {
  48.          return this.loader.loadClass(var2);
  49.       } else {
  50.          int var4;
  51.          for(var4 = 1; var2.charAt(var4) == '['; ++var4) {
  52.          }
  53.  
  54.          Class var3;
  55.          if (var2.charAt(var4) == 'L') {
  56.             var3 = this.loader.loadClass(var2.substring(var4 + 1, var2.length() - 1));
  57.          } else {
  58.             if (var2.length() != var4 + 1) {
  59.                throw new ClassNotFoundException(var2);
  60.             }
  61.  
  62.             var3 = this.primitiveType(var2.charAt(var4));
  63.          }
  64.  
  65.          int[] var5 = new int[var4];
  66.  
  67.          for(int var6 = 0; var6 < var4; ++var6) {
  68.             var5[var6] = 0;
  69.          }
  70.  
  71.          return Array.newInstance(var3, var5).getClass();
  72.       }
  73.    }
  74. }
  75.