FileDocCategorySizeDatePackage
MLetObjectInputStream.javaAPI DocJava SE 5 API2501Fri Aug 26 14:57:34 BST 2005javax.management.loading

MLetObjectInputStream

public class MLetObjectInputStream extends ObjectInputStream
This subclass of ObjectInputStream delegates loading of classes to an existing MLetClassLoader.
since
1.5

Fields Summary
private MLet
loader
Constructors Summary
public MLetObjectInputStream(InputStream in, MLet loader)
Loader must be non-null;


        super(in);
        if (loader == null) {
            throw new IllegalArgumentException("Illegal null argument to MLetObjectInputStream");
        }
        this.loader = loader;
    
Methods Summary
public java.lang.ClassLoadergetClassLoader()
Returns the ClassLoader being used

        return loader;
    
private java.lang.ClassprimitiveType(char c)

        switch(c) {
        case 66: /* 'B' */
            return Byte.TYPE;

        case 67: /* 'C' */
            return Character.TYPE;

        case 68: /* 'D' */
            return Double.TYPE;

        case 70: /* 'F' */
            return Float.TYPE;

        case 73: /* 'I' */
            return Integer.TYPE;

        case 74: /* 'J' */
            return Long.TYPE;

        case 83: /* 'S' */
            return Short.TYPE;

        case 90: /* 'Z' */
            return Boolean.TYPE;
        }
        return null;
    
protected java.lang.ClassresolveClass(java.io.ObjectStreamClass objectstreamclass)
Use the given ClassLoader rather than using the system class


        String s = objectstreamclass.getName();
        if (s.startsWith("[")) {
            int i;
            for (i = 1; s.charAt(i) == '["; i++);
            Class class1;
            if (s.charAt(i) == 'L") {
                class1 = loader.loadClass(s.substring(i + 1, s.length() - 1));
            } else {
                if (s.length() != i + 1)
                    throw new ClassNotFoundException(s);
                class1 = primitiveType(s.charAt(i));
            }
            int ai[] = new int[i];
            for (int j = 0; j < i; j++)
                ai[j] = 0;

            return Array.newInstance(class1, ai).getClass();
        } else {
            return loader.loadClass(s);
        }