package com.planet_ink.coffee_mud.core.intermud.persist; import com.planet_ink.coffee_mud.core.interfaces.*; import com.planet_ink.coffee_mud.core.*; import com.planet_ink.coffee_mud.Abilities.interfaces.*; import com.planet_ink.coffee_mud.Areas.interfaces.*; import com.planet_ink.coffee_mud.Behaviors.interfaces.*; import com.planet_ink.coffee_mud.CharClasses.interfaces.*; import com.planet_ink.coffee_mud.Commands.interfaces.*; import com.planet_ink.coffee_mud.Common.interfaces.*; import com.planet_ink.coffee_mud.Exits.interfaces.*; import com.planet_ink.coffee_mud.Items.interfaces.*; import com.planet_ink.coffee_mud.Locales.interfaces.*; import com.planet_ink.coffee_mud.MOBS.interfaces.*; import com.planet_ink.coffee_mud.Races.interfaces.*; /** * com.planet_ink.coffee_mud.core.intermud.persist.PersistentPeer * Copyright (c) 1996 George Reese * This source code may not be modified, copied, * redistributed, or used in any fashion without the * express written consent of George Reese. * * The PersistentPeer is an interface for defining * a particular kind of persistence for a specific * object. */ /** * Any object which should persist over time should * have a PersistentPeer which handles saving it. * This allows a separate object to worry about * persistence issues, specifically whether the object * should save to a flatfile or database, and how that * saving occurs. * @author George Reese (borg@imaginary.com) * @version 1.0 */ public interface PersistentPeer { /** * Gets data about this peer from storage and gives it * back to the object for which this peer exists. * @exception com.planet_ink.coffee_mud.core.intermud.persist.PersistenceException if an error occurs during restore */ public abstract void restore() throws PersistenceException; /** * Triggers a save of its peer. Implementing classes * should do whatever it takes to save the object in * this method. * @exception com.planet_ink.coffee_mud.core.intermud.persist.PersistenceException if a problem occurs in saving */ public abstract void save() throws PersistenceException; /** * Assigns a persistent object to this peer for * persistence operations. * @param ob the implementation of com.planet_ink.coffee_mud.core.intermud.persist.Persistent that this is a peer for * @see com.planet_ink.coffee_mud.core.intermud.persist.Persistent */ public abstract void setPersistent(Persistent ob); /** * An implementation uses this to tell its Persistent * that it is in the middle of restoring. * @return true if a restore operation is in progress */ public abstract boolean isRestoring(); }