public List<Employee> getEmployeeInJoiningDateRange(String startDate, String endDate) {
		if (startDate == null || endDate == null) 
			throw new IllegalArgumentException();
		DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
		List<Employee> employeesInDate = new ArrayList<Employee>();
		try {
			Date start = df.parse(startDate);
			Date end = df.parse(endDate);

			List<TreeNode> nodes = getEmployees();
			for (TreeNode n: nodes) {
				Employee e = n.getEmployee();
				Date joinDate = df.parse(e.getDateOfJoining());
				if (start.compareTo(joinDate) <=0 && end.compareTo(joinDate) >= 0) 
					employeesInDate.add(e);
			}
		} catch (ParseException e) {
			throw new CompanyHierarchyException("Date parsing failed!");
		}
		if (employeesInDate.isEmpty()) return null;
		return employeesInDate;
	}