/
maps/
package mapmaker;

import java.awt.*;
import mapmaker.mapcmd.*;
import util.*;

public interface AreaMap {
  
  // state-changing interface
  public void execute(MapCommand cmd);
  public void deepCopyFrom(AreaMap original);

  // state-query interface
  public Room getRoom(Point pos);
  public Point getRoomPos(Room room);
  public Room getSelected();
  public Room[] getRooms();
  public Link[] getLinks();
  public Dimension getSize();
  public Text getDesc();

  // special interface for classes Link and Room
  public void removeLink(Link link);
  public void removeRoom(Room room);

  // special interface for DescViewer
  public void setDesc(Text desc);

  // interface to handle notifies
  public void notifyOfChange(Object arg);

} // AreaMap