package state.ts2;

/**
 * This interface describes a turnstyle, like those we find in a metro-station.
 * @author fpereira
 */
public interface TurnstileUserInterface {
  /**
   * In this event, the user deposits a coin in the turnstile.
   */
  void coin();

  /**
   * In this event, the user passes through the turnstile.
   */
  void pass();

  /**
   * True if the turnstile is locked.
   * @return a boolean value.
   */
  boolean isLocked();
}
