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 / beans / ObjectInputStreamWithLoader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.8 KB  |  92 lines

  1. package java.beans;
  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 ObjectInputStreamWithLoader extends ObjectInputStream {
  11.    private ClassLoader loader;
  12.  
  13.    public ObjectInputStreamWithLoader(InputStream var1, ClassLoader var2) throws IOException, StreamCorruptedException {
  14.       super(var1);
  15.       if (var2 == null) {
  16.          throw new IllegalArgumentException("Illegal null argument to ObjectInputStreamWithLoader");
  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 'E':
  31.          case 'G':
  32.          case 'H':
  33.          case 'K':
  34.          case 'L':
  35.          case 'M':
  36.          case 'N':
  37.          case 'O':
  38.          case 'P':
  39.          case 'Q':
  40.          case 'R':
  41.          case 'T':
  42.          case 'U':
  43.          case 'V':
  44.          case 'W':
  45.          case 'X':
  46.          case 'Y':
  47.          default:
  48.             return null;
  49.          case 'F':
  50.             return Float.TYPE;
  51.          case 'I':
  52.             return Integer.TYPE;
  53.          case 'J':
  54.             return Long.TYPE;
  55.          case 'S':
  56.             return Short.TYPE;
  57.          case 'Z':
  58.             return Boolean.TYPE;
  59.       }
  60.    }
  61.  
  62.    protected Class resolveClass(ObjectStreamClass var1) throws IOException, ClassNotFoundException {
  63.       String var2 = var1.getName();
  64.       if (!var2.startsWith("[")) {
  65.          return this.loader.loadClass(var2);
  66.       } else {
  67.          int var4;
  68.          for(var4 = 1; var2.charAt(var4) == '['; ++var4) {
  69.          }
  70.  
  71.          Class var3;
  72.          if (var2.charAt(var4) == 'L') {
  73.             var3 = this.loader.loadClass(var2.substring(var4 + 1, var2.length() - 1));
  74.          } else {
  75.             if (var2.length() != var4 + 1) {
  76.                throw new ClassNotFoundException(var2);
  77.             }
  78.  
  79.             var3 = this.primitiveType(var2.charAt(var4));
  80.          }
  81.  
  82.          int[] var5 = new int[var4];
  83.  
  84.          for(int var6 = 0; var6 < var4; ++var6) {
  85.             var5[var6] = 0;
  86.          }
  87.  
  88.          return Array.newInstance(var3, var5).getClass();
  89.       }
  90.    }
  91. }
  92.