Added getFutureMeetingList() method. Compiles ok.
Working on sorting the list returned by getFutureMeetingList() method, using a separate sorting method to simplify the getFutureMeetingList() method.
Simplified comparison of dates in addFutureMeeting(); completed sort() method, compiles ok.
Sorting method working, replaced list.add with list.set to stop list from growing when elements are rearranged, and thus entering an infinite loop.  Tested with dummy data in launch().
Sort(), addFutureMeeting() compile and run as expected.
Cleared some surplus notes/comments.
Added getFutureMeetingList() method, intitial version. Compiles ok.
getFutureMeetingList() compiles and runs ok.
Working on getPastMeetingList() method; need to clarify casting, and fix pastMeetings.getContacts() - this method should be applied to the meetings stored in pastMeetings, not to the Set pastMeetings.
Fixed problem whereby getContacts() was being applied to the Set storing the meetings rather than the meetings themselves; working on solution to the type problem whereby sorted() takes and returns List<Meeting> but getPastMeeting() returns a sorted list of List<PastMeeting>. Using a wildcard with sorted() creates problems for other methods that use it due to type-checking, so it seems feasible to working with a List<Meeting> in the getPastMeeting() method, sort this list, and then add the contents to a List<PastMeeting> just before returning.
getPastMeetingList() now working, having converted from List<Meeting> to List<PastMeeting>.
Adjusted constructor to take Set<Contact> and Calendar parameters.
Completed initial version of addNewPastMeeting(). Booleans allow for display of correct error message, and for user to correct as many errors as possible in one swoop.
Listed relevant imports; corrected extends Meeting to extends MeetingImpl.
Corrected typo nullPointEx to nullPointerEx; corrected Iterator to Iterator<Contact>; inserted while loop required for iteration through contacts Set; moved String unknownContacts outside of try block for increased visibility.
Corrected addNewPastMeeting() so that correct error message is displayed for null values by extending the null pointer error catch block. Tested with dummy data - compiles and runs ok.
Adding addMeetingNotes() method. Working on exception handling; still need to add the creation of the past meeting and deletion of the future meeting to the try block.
addMeetingNotes(): moved if-statement concerning the date of the past meeting out of the while loop, having inserted a break statement after the meeting with the specified id is found. This is so that the meeting can be saved for use later, such as in creating a new past meeting from the future meeting matching the id.
Added addNotes() method to allow addition of notes after object construction; added space into concatenation of notes for clarity.
Updated addMeetingNotes() so that if the meeting already exists in pastMeetings, the notes are updated. If the meeting doesn't exist in pastMeetings, the program looks for the meeting in the set of future meetings; if it isn't found here, it throws an exception, if it is found then it creates a PastMeeting from the FutureMeeting, adds it to the pastMeeting set, and removes it from futureMeetings.