import java.util.*;

public class GraduatingStudent extends Student {
    public GraduatingStudent () {
    }

    public GraduatingStudent (String aName, DirectorOfStudies aDos, 
			      HonoursCourse aCourse) {
	name = aName;
        director = aDos;
        course = aCourse;
    }

    public boolean validateChoices() {
       if (super.validateChoices()) {
	   Module m;
	   Iterator i = modules.iterator();
	   while (i.hasNext()) {
	       m = (Module)i.next();
	       // check the module is appropriate for my course
	       if (!course.isAcceptable(m)) {
		   return false;
	       }
	   }
	   return true;
       } else {return false;}
    }

    // a graduating student should only pick appropriate modules,
    // but we only advise, in case special arrangements have been made with DOS
    public void chooseModule(java.io.BufferedReader d) 
	throws java.io.IOException {
	System.out.println 
	    ("Eligible modules for which you're not registered already:");
	Iterator i = course.permittedModules.iterator();
	Module mod;
	while (i.hasNext()) {
	    mod = (Module)i.next();
	    if (!modules.contains(mod)) { // not already registered
		System.out.println (mod.name);
	    }
	}
	System.out.println ("Module name:");
	Module m = Registry.getModule(d.readLine());
	if (null == m) {
	    System.out.println ("Not a module");
	} else {
	    registerForModule(m);
	}
    }

    HonoursCourse course;

}
