/
maps/
package mapmaker.mapcmd;

import java.util.*;

/** groups several MapCommands into one
 */
public class CompositeCommand implements MapCommand {

  Vector commands = new Vector();

  /** adds cmd to the list of commands contained
   */
  public void add(MapCommand cmd) {
    commands.addElement(cmd);
  } // add

  /** returns an iterator that iterates through the contained
   * commands in the same order as they where added
   */
  public Iterator iterator() {
    return new CommandIterator(commands);
  } // iterator

} // CompositeCommand

class CommandIterator implements Iterator {

  int pos = 0;
  Vector commands;

  CommandIterator(Vector commands) {
    this.commands = commands;
  } // CommandIterator

  public boolean hasNext() {
    return pos < commands.size();
  } // hasNext

  public Object next() {
    return commands.elementAt(pos++);
  } // next

  /** does nothing
   */
  public void remove() {
  } // remove

} // CommandIterator