Brought things into line with new streaming world order.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1607 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2002-07-23 05:54:53 +00:00
parent c3191b9170
commit eb0f92fcef
16 changed files with 149 additions and 348 deletions
@@ -1,10 +1,10 @@
//
// $Id: PlaceConfig.java,v 1.3 2002/03/26 22:57:52 mdb Exp $
// $Id: PlaceConfig.java,v 1.4 2002/07/23 05:54:52 mdb Exp $
package com.threerings.crowd.data;
import com.threerings.presents.io.Streamable;
import com.threerings.presents.io.SimpleStreamableObject;
import com.threerings.io.SimpleStreamableObject;
import com.threerings.crowd.client.PlaceController;
/**
* The place config class encapsulates the configuration information for a
@@ -18,30 +18,25 @@ import com.threerings.presents.io.SimpleStreamableObject;
* associated place config derived class that overrides {@link
* #getControllerClass} and {@link #getManagerClassName}, returning the
* appropriate place controller and manager class for that place.
*
* <p> A place that has specific configuration needs would extend this
* class (or an appropriate subclass) adding it's configuration
* information and overriding {@link #writeTo} and {@link #readFrom} to
* provide code to serialize and unserialize the additional fields.
*/
public abstract class PlaceConfig extends SimpleStreamableObject
{
/**
* Returns the class that should be used to create a controller for
* this place. The controller class must derive from {@link
* com.threerings.crowd.client.PlaceController}.
* PlaceController}.
*/
public abstract Class getControllerClass ();
/**
* Returns the name of the class that should be used to create a
* manager for this place. The manager class must derive from {@link
* com.threerings.crowd.server.PlaceManager}. <em>Note:</em>
* this method differs from {@link #getControllerClass} because we
* want to avoid compile time linkage of the place config object
* (which is used on the client) to server code. This allows a code
* optimizer (DashO Pro, for example) to remove the server code from
* the client, knowing that it is never used.
* com.threerings.crowd.server.PlaceManager}. <em>Note:</em> this
* method differs from {@link #getControllerClass} because we want to
* avoid compile time linkage of the place config object (which is
* used on the client) to server code. This allows a code optimizer
* (DashO Pro, for example) to remove the server code from the client,
* knowing that it is never used.
*/
public abstract String getManagerClassName ();
}