21.8 The MudPerson Class

Example 21-7 shows the MudPerson class. This is the simplest of the remote objects in the MUD system. It implements the two remote methods defined by the RemoteMudPerson interface and also defines a few nonremote methods used by the MudClient class of Example 21-8. The remote methods are quite simple: one simply returns a description string to the caller, and the other writes a message to a stream where the user can see it.

Example 21-7. MudPerson.java
package je3.rmi; import java.rmi.*; import java.rmi.server.*; import java.io.*; import je3.rmi.Mud.*; /**  * This is the simplest of the remote objects that we implement for the MUD.  * It maintains only a little bit of state, and has only two exported  * methods   **/ public class MudPerson extends UnicastRemoteObject implements RemoteMudPerson {     String name;             // The name of the person      String description;      // The person's description     PrintWriter tellStream;  // Where to send messages we receive          public MudPerson(String n, String d, PrintWriter out)         throws RemoteException     {         name = n;         description = d;         tellStream = out;     }          /** Return the person's name.  Not a remote method */     public String getName( ) { return name; }          /** Set the person's name.  Not a remote method */     public void setName(String n) { name = n; }          /** Set the person's description.  Not a remote method */     public void setDescription(String d) { description = d; }          /** Set the stream that messages to us should be written to. Not remote. */     public void setTellStream(PrintWriter out) { tellStream = out; }          /** A remote method that returns this person's description */     public String getDescription( ) throws RemoteException {         return description;     }          /**       * A remote method that delivers a message to the person.      * I.e. it delivers a message to the user controlling the "person"      **/     public void tell(String message) throws RemoteException {         tellStream.println(message);         tellStream.flush( );     } }


Java Examples in a Nutshell
Java Examples in a Nutshell, 3rd Edition
ISBN: 0596006209
EAN: 2147483647
Year: 2003
Pages: 285

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net