FileDocCategorySizeDatePackage
MudPerson.javaAPI DocExample1883Mon Sep 22 13:30:32 BST 1997None

MudPerson.java

// This example is from _Java Examples in a Nutshell_. (http://www.oreilly.com)
// Copyright (c) 1997 by David Flanagan
// This example is provided WITHOUT ANY WARRANTY either expressed or implied.
// You may study, use, modify, and distribute it for non-commercial purposes.
// For any commercial use, see http://www.davidflanagan.com/javaexamples

import java.rmi.*;
import java.rmi.server.*;
import java.io.*;
import 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 to

  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();
  }
}