package simizer.event;

/**
 * Allows events to be queued for later execution.
 * <p>
 * Classes that can schedule events should be subclasses of {@link
 * EventProducer}.  If that is not possible, it is also acceptable for classes
 * to implement this {@code IEventProducer} interface.  In that situation, the
 * class will likely provide a wrapper to an internal {@link EventProducer}
 * instance.
 * <p>
 * The {@link Simulation} will automatically call {@link
 * #setChannel(simizer.event.Channel)} for classes that implement this
 * interface.
 */
public interface IEventProducer {

  /**
   * Returns the {@code Channel} used by this producer.
   *
   * @return the {@code Channel} used by this producer
   */
  public Channel getOutputChannel();

  /**
   * Changes the {@code Channel} used by this producer.
   *
   * @param channel the new {@link Channel}
   */
  public void setChannel(final Channel channel);

  /**
   * Adds an event to the {@code Channel} for this producer.
   *
   * @param event the {@code Event} to add
   */
  public void registerEvent(final Event event);

}

@@ -929,62 +929,150 @@
   * 
-Adds an event to the %7B@code Channel%7D for this producer
+Schedules an %7B@code Event%7D for deliver.%0A   * %3Cp%3E%0A   * Passes the event to the system for delivery at the timestamp specified in%0A   * the event
 .%0A  
@@ -1117,11 +1117,16 @@
  to 
-add
+schedule
 %0A   

Update the description for IEventProducer.