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

  1. package sun.rmi.server;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectOutputStream;
  5. import java.io.OutputStream;
  6. import java.net.MalformedURLException;
  7. import java.net.URL;
  8. import java.rmi.Remote;
  9. import sun.rmi.transport.Utils;
  10.  
  11. public class MarshalOutputStream extends ObjectOutputStream {
  12.    private static String codebase = Utils.getProperty("java.rmi.server.codebase");
  13.  
  14.    public MarshalOutputStream(OutputStream var1) throws IOException {
  15.       super(var1);
  16.       ((ObjectOutputStream)this).enableReplaceObject(true);
  17.    }
  18.  
  19.    protected Object replaceObject(Object var1) throws IOException {
  20.       if (var1 instanceof Remote) {
  21.          var1 = RemoteProxy.getProxy((Remote)var1);
  22.       }
  23.  
  24.       return var1;
  25.    }
  26.  
  27.    protected void annotateClass(Class var1) throws IOException {
  28.       String var2 = null;
  29.       String var3 = var1.getName();
  30.       if (!var3.startsWith("java.")) {
  31.          ClassLoader var4 = var1.getClassLoader();
  32.          if (var4 != null) {
  33.             if (var4 instanceof RMIClassLoader) {
  34.                RMIClassLoader var5 = (RMIClassLoader)var4;
  35.                var2 = var5.getCodeBase().toExternalForm();
  36.             } else {
  37.                SecurityManager var7 = System.getSecurityManager();
  38.                Object var6;
  39.                if (var7 != null && (var6 = var7.getSecurityContext()) != null && var6 instanceof URL) {
  40.                   var2 = ((URL)var6).toExternalForm();
  41.                }
  42.             }
  43.          }
  44.  
  45.          if (var2 == null) {
  46.             var2 = codebase;
  47.          }
  48.       }
  49.  
  50.       ((ObjectOutputStream)this).writeObject(var2);
  51.    }
  52.  
  53.    static {
  54.       if (codebase != null) {
  55.          try {
  56.             new URL(codebase);
  57.          } catch (MalformedURLException var0) {
  58.             codebase = null;
  59.          }
  60.       }
  61.    }
  62. }
  63.