Files
narya/src/java/com/threerings/crowd/data/OccupantInfo.java
T
Michael Bayne 6e962013a9 Minor cleanups; added PlaceManager to MessageHandler callback.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@773 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-14 00:11:18 +00:00

83 lines
2.4 KiB
Java

//
// $Id: OccupantInfo.java,v 1.4 2001/12/14 00:11:17 mdb Exp $
package com.threerings.crowd.data;
import java.io.IOException;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import com.threerings.presents.dobj.DSet;
/**
* The occupant info object contains all of the information about an
* occupant of a place that should be shared with other occupants of the
* place. These objects are stored in the place object itself and are
* updated when bodies enter and exit a place. A system that builds upon
* the Crowd framework can extend this class to include extra information
* about their occupants. They will need to be sure to return the proper
* class from {@link
* com.threerings.crowd.server.PlaceManager#getOccupantInfoClass}
* and populate their occupant info in {@link
* com.threerings.crowd.server.PlaceManager#populateOccupantInfo}.
*/
public class OccupantInfo implements DSet.Element
{
/** The body object id of this occupant (and our element key). */
public Integer bodyOid;
/** The username of this occupant. */
public String username;
/** Access to the body object id as an int. */
public int getBodyOid ()
{
return bodyOid.intValue();
}
// documentation inherited
public Object getKey ()
{
return bodyOid;
}
// documentation inherited
public void writeTo (DataOutputStream out)
throws IOException
{
out.writeInt(bodyOid.intValue());
out.writeUTF(username);
}
// documentation inherited
public void readFrom (DataInputStream in)
throws IOException
{
bodyOid = new Integer(in.readInt());
username = in.readUTF();
}
/**
* Called to generate a string representation of this occupant info
* object. This calls the overridable {@link #toString(StringBuffer)}
* to generate that representation in a derived class friendly manner.
*/
public String toString ()
{
StringBuffer buf = new StringBuffer("[");
toString(buf);
return buf.append("]").toString();
}
/**
* Derived classes should override this and append their extra
* occupant info to the buffer. They should of course not to forget to
* call super.
*/
protected void toString (StringBuffer buf)
{
buf.append("boid=").append(bodyOid);
buf.append(", username=").append(username);
}
}