package lectures.inheritance.multiple;
import util.annotations.WebDocuments;

import lectures.inheritance.abstract_classes.Course;
import lectures.inheritance.abstract_classes.courselist.ACourseList;
import lectures.inheritance.abstract_classes.courselist.CourseList;
import util.misc.Console;

@WebDocuments({"Lectures/InheritanceMultiple.pptx", "Lectures/InheritanceMultiple.pdf", "Videos/InheritanceMultiple.avi"})
public class LoggedCourseDisplayer {
    protected static CourseList courses = new ACourseList();

    public static void main(String[] args) {
        fillCourses();
        matchTitles();
    }
    
    protected static void matchTitles() {
        while (true) {
            System.out.println("Please enter course title:");
            String inputLine = Console.readString();
            if (inputLine.equals("."))
                break;
            else {
                Course matchedCourse = courses.matchTitle(inputLine);
                if (matchedCourse == null)
                    System.out.println("Sorry, this course is not offered.");
                else {
                    printHeader();
                    print(matchedCourse);
                }
            }
        }
        
    }

    protected static void fillCourses() {
        courses.addElement(new ALoggedRegularCourse("Intro. Prog.", "COMP", 14));
        courses.addElement(new ALoggedRegularCourse("Found. of Prog.", "COMP", 114));
        courses.addElement(new ALoggedFreshmanSeminar("Comp. Animation", "COMP"));
        courses.addElement(new ALoggedFreshmanSeminar("Lego Robots", "COMP"));
    }

    static void printHeader() {
        System.out.println("TITLE       " + "NUMBER ");
    }

    static void print(Course course) {
        System.out.println(course.getTitle() + "    " + course.getDepartment()
                + course.getNumber());

    }

}