import java.util.*;
public class StaffExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ArrayList<Employee> staff = new ArrayList<Employee>();
		
		hire( new HourlyWorker( "bob", "janitor", 4.50), staff);
		hire( new SalariedWorker("Hermione", "Geek in Charge", 120000), staff);
		hire( new SalariedWorker("Neville", "Engineer", 60000), staff);
		hire( new HourlyWorker( "Voldemort", "Token Bad Guy", 20.00), staff);
		
		PrintStaffList(staff);
		for (int week = 0; week < 20; week++) {
			System.out.printf( "Week: %d\n", week);
			PayEveryone(staff, week);
		}
		
	}
	
	public static void hire( Employee newguy, ArrayList<Employee> staff) {
		staff.add(newguy);
	}
	
	public static void PrintStaffList(ArrayList<Employee> staff) {
		System.out.println( "Here is the staff: ");
		for (Employee x: staff) {
			System.out.printf( "     %s: %s\n", x.getName(), x.getTitle());
		}
	}
	
	public static void PayEveryone(ArrayList<Employee> staff, int week) {
		for (Employee x: staff)
			x.pay(week);
	}
}
