1:
37:
38:
39: package ;
40:
41: import ;
42:
43: import ;
44: import ;
45: import ;
46:
47: public class UnicastRemoteObject extends RemoteServer
48: {
49: private static final long serialVersionUID = 4974527148936298033L;
50:
51: private int port = 0;
52: private RMIClientSocketFactory csf = null;
53: private RMIServerSocketFactory ssf = null;
54:
55: protected UnicastRemoteObject() throws RemoteException {
56: this(0);
57: }
58:
59: protected UnicastRemoteObject(int port) throws RemoteException {
60: this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory());
61: }
62:
63: protected UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException {
64: this.port = port;
65:
66:
67:
68: this.ref = new UnicastServerRef(new ObjID(), port, ssf);
69: exportObject(this);
70: }
71:
72: protected UnicastRemoteObject(RemoteRef ref) throws RemoteException {
73: super((UnicastServerRef)ref);
74: exportObject(this);
75: }
76:
77: public Object clone() throws CloneNotSupportedException {
78: throw new Error("Not implemented");
79: }
80:
81: public static RemoteStub exportObject(Remote obj) throws RemoteException {
82: UnicastServerRef sref = (UnicastServerRef)((RemoteObject)obj).getRef();
83: return (sref.exportObject(obj));
84: }
85:
86: public static Remote exportObject(Remote obj, int port) throws RemoteException
87: {
88: return exportObject(obj, port, null);
89: }
90:
91: static Remote exportObject(Remote obj, int port, RMIServerSocketFactory ssf)
92: throws RemoteException
93: {
94: UnicastServerRef sref = null;
95: if (obj instanceof RemoteObject)
96: sref = (UnicastServerRef)((RemoteObject)obj).getRef ();
97: if(sref == null)
98: {
99: sref = new UnicastServerRef(new ObjID (), port, ssf);
100: }
101: Remote stub = sref.exportObject (obj);
102: addStub(obj, stub);
103: return stub;
104: }
105:
106:
109: public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf,
110: RMIServerSocketFactory ssf)
111: throws RemoteException
112: {
113: return (exportObject(obj, port, ssf));
114: }
115:
116: public static boolean unexportObject(Remote obj, boolean force)
117: throws NoSuchObjectException
118: {
119: if (obj instanceof RemoteObject)
120: {
121: deleteStub(obj);
122: UnicastServerRef sref = (UnicastServerRef)((RemoteObject)obj).getRef();
123: return sref.unexportObject(obj, force);
124: }
125: else
126: {
127:
128: ;
129: }
130: return true;
131: }
132:
133: }