package lectures.inheritance.abstract_classes;
import util.annotations.WebDocuments;
import java.util.Scanner;
import lectures.inheritance.abstract_classes.courselist.ACourseList;
import lectures.inheritance.abstract_classes.courselist.CourseList;
import util.misc.Console;
@WebDocuments({"Lectures/InheritanceAbstractClasses.pptx", "Lectures/InheritanceAbstractClasses.pdf", "Videos/InheritanceAbstractClasses.avi"})
public
abstract
class ACourseDisplayer implements CourseDisplayer {
protected CourseList courses = new ACourseList();
Scanner scanner = new Scanner(System.in);
public void matchTitles() {
while (true) {
System.out.println("Please enter course title:");
String inputLine = scanner.nextLine();
if (".".equals(inputLine)) {
break;
} else {
Course matchedCourse = courses.matchTitle(inputLine);
if (matchedCourse == null) {
System.out.println("Sorry, this course is not offered.");
} else {
printHeader();
print(matchedCourse);
}
}
}
}
protected abstract RegularCourse createRegularCourse(
String theTitle, String theDept, int theCourseNum)
;
protected abstract FreshmanSeminar createFreshmanSeminar(String theTitle, String theDept) ;
public void fillCourses() {
courses.addElement(createRegularCourse("Intro. Prog.", "COMP", 14));
courses.addElement(createRegularCourse("Found. of Prog.", "COMP", 114));
courses.addElement(createFreshmanSeminar("Comp. Animation", "COMP"));
courses.addElement(createFreshmanSeminar("Lego Robots", "COMP"));
}
void printHeader() {
System.out.println("TITLE " + "NUMBER ");
}
void print(Course course) {
System.out.println(course.getTitle() + " " + course.getDepartment()
+ course.getNumber());
}
}