diff --git a/src/java/com/threerings/crowd/data/OccupantInfo.java b/src/java/com/threerings/crowd/data/OccupantInfo.java index 55675eb2e..1001684c3 100644 --- a/src/java/com/threerings/crowd/data/OccupantInfo.java +++ b/src/java/com/threerings/crowd/data/OccupantInfo.java @@ -1,5 +1,5 @@ // -// $Id: OccupantInfo.java,v 1.4 2001/12/14 00:11:17 mdb Exp $ +// $Id: OccupantInfo.java,v 1.5 2001/12/15 04:20:00 mdb Exp $ package com.threerings.crowd.data; @@ -13,15 +13,22 @@ 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 + * 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}. + * + *
Note also that this class implements {@link Cloneable} which means + * that if derived classes add non-primitive attributes, they are + * responsible for adding the code to clone those attributes when a clone + * is requested. */ -public class OccupantInfo implements DSet.Element +public class OccupantInfo + implements DSet.Element, Cloneable { /** The body object id of this occupant (and our element key). */ public Integer bodyOid; @@ -41,6 +48,18 @@ public class OccupantInfo implements DSet.Element return bodyOid; } + /** + * Generates a cloned copy of this instance. + */ + public Object clone () + { + try { + return super.clone(); + } catch (CloneNotSupportedException cnse) { + throw new RuntimeException("WTF? " + cnse); + } + } + // documentation inherited public void writeTo (DataOutputStream out) throws IOException