package dynamic.joint_degrees;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeMap;

public class DegreeYear {

    // mapped by optional core etc.
    public TreeMap<String,ArrayList<CourseInfo>> courses = new TreeMap<String,ArrayList<CourseInfo>>();

    public void AddCourse(CourseInfo ci) {

        if(NewCourse(ci)){
            courses.get(ci.requirement).add(ci);
            Collections.sort(courses.get(ci.requirement));
        }

    }

    private boolean NewCourse(CourseInfo ci) {

        ArrayList<CourseInfo> courseInfos = courses.get(ci.requirement);
        if(courseInfos == null){
            ArrayList<CourseInfo> new_list = new ArrayList<CourseInfo>();
            courses.put(ci.requirement,new_list);
            return true;
        }

        for (Iterator<CourseInfo> iterator = courseInfos.iterator(); iterator.hasNext(); ) {
            CourseInfo next = iterator.next();
            if(next.code.equals(ci.code))
                return false;
        }
        return true;

    }
}
