1 package org.sapia.ubik.net; 2 3 import java.io.IOException ; 4 import java.io.InputStream ; 5 import java.io.ObjectInputStream ; 6 import java.io.ObjectStreamClass ; 7 8 import java.util.HashMap ; 9 10 11 22 public class ObjectInputStreamEx extends ObjectInputStream { 23 24 private static final HashMap _primitives = new HashMap (8, 1.0F); 25 26 static { 27 _primitives.put("boolean", boolean.class); 28 _primitives.put("byte", byte.class); 29 _primitives.put("char", char.class); 30 _primitives.put("short", short.class); 31 _primitives.put("int", int.class); 32 _primitives.put("long", long.class); 33 _primitives.put("float", float.class); 34 _primitives.put("double", double.class); 35 _primitives.put("void", void.class); 36 } 37 38 ClassLoader _loader; 39 40 46 public ObjectInputStreamEx(InputStream is, ClassLoader loader) 47 throws java.io.IOException { 48 super(is); 49 _loader = loader; 50 } 51 52 55 protected Class resolveClass(ObjectStreamClass clazz) 56 throws IOException , ClassNotFoundException { 57 Class resolved; 58 resolved = (Class ) _primitives.get(clazz.getName()); 59 60 if (resolved == null) { 61 return _loader.loadClass(clazz.getName()); 62 } else { 63 return resolved; 64 } 65 } 66 } 67 | Popular Tags |