/**
 * Prerequisites for courses (also serve as requirements for the
 * major).
 *
 * @author Samuel A. Rebelsky
 * @author CSC153 2003S
 * @version 0.1 of April 2003
 */
public interface Prereq
{
  /**
   * Determine if you can actually do something. 
   */
  boolean meets(Student terry, Semester sem);

  /**
   * Convert the prerequisite to a string for printing.
   */
  String toString();

  /**
   * Determine which parts of the prerequisite are not
   * met.
   */
  Prereq unmet(Student terry, Semester sem);

} // interface Prereq

