import java.io.Serializable;
import java.util.Iterator;
import java.util.HashMap;


/**
 * A database of Course objects
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public class CourseDatabase implements Serializable
{
    private static final long serialVersionUID = 1L;

    private HashMap<String, Course>     db;

    /**
     * Constructor
     */
    public CourseDatabase()
    {
       db = new HashMap<String,Course>();
    }

    /**
     * Add a Course
     *
     * @param id       The identifier
     * @param course   The Course to add
     */
    public void add(String id, Course course)
    {
       db.put(id, course);
    }

    /**
     * Get the values (i.e., Course objects) in the database
     *
     * @return  The values
     */
    public Iterator<Course> iterator()
    {
       return db.values().iterator();
    }

    /**
     * Get a Course
     *
     * @param  department  The department identifier
     * @param  number      The course number
     * @return             The Course to get
     */
    public Course get(String department, int number)
    {
       return db.get(department+number);
    }

    /**
     * Remove a Course
     *
     * @param department   The department identifier
     * @param number       The course number
     */
    public void remove(String department, int number)
    {
       db.remove(department+number);
    }
}
