// @topic S-0314-13-04-20 Java Iterator and Visitor patterns
// @brief interface for all updatable objects

package week11;

// Sample only! This is not set in stone.
// Think about your own project needs and
// and change this interface accordingly.
// Feel free to add new methods as needed.
public interface IUpdatable {
    
    // Generic update from the background thread:
    void update();

    // Elevator notifying the floor and visitor objects
    // about the elevator arrival:
    void elevatorArrived( /*Elevator elevator*/ );

    // Special update to all objects,
    // possibly a random event generated
    // by the scenario or the user pressing
    // the "red button" during the simulation:
    void emergency();

    // A floor object notifying the visitor
    // that "you are here":
    void visitorArrived( Floor floor );

    // Scenario notifying the floor object
    // that a new visitor has arrived:
    void visitorArrived( Visitor visitor );
}