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 / rmi / server / UnicastRemoteObject.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.0 KB  |  131 lines

  1. package java.rmi.server;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.lang.reflect.Constructor;
  6. import java.rmi.NoSuchObjectException;
  7. import java.rmi.Remote;
  8. import java.rmi.RemoteException;
  9. import sun.rmi.transport.ObjectTable;
  10.  
  11. public class UnicastRemoteObject extends RemoteServer {
  12.    private int port;
  13.    private RMIClientSocketFactory csf;
  14.    private RMIServerSocketFactory ssf;
  15.    private static final long serialVersionUID = 4974527148936298033L;
  16.    private static Class[] portParamTypes;
  17.    private static Class[] portFactoryParamTypes;
  18.    // $FF: synthetic field
  19.    static Class class$java$rmi$server$RMIClientSocketFactory;
  20.    // $FF: synthetic field
  21.    static Class class$java$rmi$server$RMIServerSocketFactory;
  22.    // $FF: synthetic field
  23.    static Class class$java$rmi$server$ServerRef;
  24.  
  25.    protected UnicastRemoteObject() throws RemoteException {
  26.       this(0);
  27.    }
  28.  
  29.    protected UnicastRemoteObject(int var1) throws RemoteException {
  30.       this.port = 0;
  31.       this.csf = null;
  32.       this.ssf = null;
  33.       this.port = var1;
  34.       exportObject(this, var1);
  35.    }
  36.  
  37.    protected UnicastRemoteObject(int var1, RMIClientSocketFactory var2, RMIServerSocketFactory var3) throws RemoteException {
  38.       this.port = 0;
  39.       this.csf = null;
  40.       this.ssf = null;
  41.       this.port = var1;
  42.       this.csf = var2;
  43.       this.ssf = var3;
  44.       exportObject(this, var1, var2, var3);
  45.    }
  46.  
  47.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  48.       var1.defaultReadObject();
  49.       this.reexport();
  50.    }
  51.  
  52.    public Object clone() throws CloneNotSupportedException {
  53.       try {
  54.          UnicastRemoteObject var1 = (UnicastRemoteObject)super.clone();
  55.          var1.reexport();
  56.          return var1;
  57.       } catch (RemoteException var2) {
  58.          throw new ServerCloneException("Clone failed", var2);
  59.       }
  60.    }
  61.  
  62.    private void reexport() throws RemoteException {
  63.       if (this.csf == null && this.ssf == null) {
  64.          exportObject(this, this.port);
  65.       } else {
  66.          exportObject(this, this.port, this.csf, this.ssf);
  67.       }
  68.  
  69.    }
  70.  
  71.    public static RemoteStub exportObject(Remote var0) throws RemoteException {
  72.       return (RemoteStub)exportObject(var0, 0);
  73.    }
  74.  
  75.    public static Remote exportObject(Remote var0, int var1) throws RemoteException {
  76.       Object[] var2 = new Object[]{new Integer(var1)};
  77.       return exportObject(var0, "UnicastServerRef", portParamTypes, var2);
  78.    }
  79.  
  80.    public static Remote exportObject(Remote var0, int var1, RMIClientSocketFactory var2, RMIServerSocketFactory var3) throws RemoteException {
  81.       Object[] var4 = new Object[]{new Integer(var1), var2, var3};
  82.       return exportObject(var0, "UnicastServerRef2", portFactoryParamTypes, var4);
  83.    }
  84.  
  85.    public static boolean unexportObject(Remote var0, boolean var1) throws NoSuchObjectException {
  86.       return ObjectTable.unexportObject(var0, var1);
  87.    }
  88.  
  89.    private static Remote exportObject(Remote var0, String var1, Class[] var2, Object[] var3) throws RemoteException {
  90.       String var4 = "sun.rmi.server." + var1;
  91.  
  92.       Class var5;
  93.       try {
  94.          var5 = Class.forName(var4);
  95.       } catch (ClassNotFoundException var8) {
  96.          throw new ExportException("No class found for server ref type: " + var1);
  97.       }
  98.  
  99.       if (!(class$java$rmi$server$ServerRef == null ? (class$java$rmi$server$ServerRef = class$("java.rmi.server.ServerRef")) : class$java$rmi$server$ServerRef).isAssignableFrom(var5)) {
  100.          throw new ExportException("Server ref class not instance of " + (class$java$rmi$server$ServerRef == null ? (class$java$rmi$server$ServerRef = class$("java.rmi.server.ServerRef")) : class$java$rmi$server$ServerRef).getName() + ": " + var5.getName());
  101.       } else {
  102.          ServerRef var6;
  103.          try {
  104.             Constructor var7 = var5.getConstructor(var2);
  105.             var6 = (ServerRef)var7.newInstance(var3);
  106.             if (var0 instanceof UnicastRemoteObject) {
  107.                ((UnicastRemoteObject)var0).ref = var6;
  108.             }
  109.          } catch (Exception var9) {
  110.             throw new ExportException("Exception creating instance of server ref class: " + var5.getName(), var9);
  111.          }
  112.  
  113.          return var6.exportObject(var0, (Object)null);
  114.       }
  115.    }
  116.  
  117.    // $FF: synthetic method
  118.    static Class class$(String var0) {
  119.       try {
  120.          return Class.forName(var0);
  121.       } catch (ClassNotFoundException var2) {
  122.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  123.       }
  124.    }
  125.  
  126.    static {
  127.       portParamTypes = new Class[]{Integer.TYPE};
  128.       portFactoryParamTypes = new Class[]{Integer.TYPE, class$java$rmi$server$RMIClientSocketFactory == null ? (class$java$rmi$server$RMIClientSocketFactory = class$("java.rmi.server.RMIClientSocketFactory")) : class$java$rmi$server$RMIClientSocketFactory, class$java$rmi$server$RMIServerSocketFactory == null ? (class$java$rmi$server$RMIServerSocketFactory = class$("java.rmi.server.RMIServerSocketFactory")) : class$java$rmi$server$RMIServerSocketFactory};
  129.    }
  130. }
  131.