import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

public class TestEmployee {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//Generate Employees
		Name emp1name = new Name("Ashok", "AV");
		Date emp1joinDate = Calendar.getInstance().getTime();
		Employee Emp1 = new Employee(emp1name, 1, emp1joinDate);

		Name emp2name = new Name("JKid", "JAVA");
		Calendar cal = Calendar.getInstance();
		cal.roll(Calendar.DAY_OF_MONTH, -5);
		Date emp2joinDate = cal.getTime();
		Employee Emp2 = new Employee(emp2name, 1, emp2joinDate);

		// Employee List database
		List<Employee> employees = new ArrayList<Employee>();
		employees.add(Emp1);
		employees.add(Emp2);
		
		Collections.sort(employees, SENIORITY_ORDER); // We sort using Seniority on basis of hire date
		
		System.out.println(employees);

	}
	//This is the comparator object  for comparing our join dates 
	static final Comparator<Employee> SENIORITY_ORDER = new Comparator<Employee>() {
		//Anonymous class
		public int compare(Employee e1, Employee e2) {
			return e2.getJoinDate().compareTo(e1.getJoinDate());
		}
	};

}
