Contact with some new javadoc and fully Junit tested
Contact tests completed.
Completing MeetingImpl with some javadoc.
Completed JUnit tests for MeetingImpl (just using this to learn how to
write and use JUnit).
PastMeetingImplTest completed with javadoc auto-generated by Eclipse.
added "extends Meeting", (it explains why I'd had to downcast in one of
my PastMeetingImplTest tests to stop it failing).
added "extends Meeting".
Instead of read/writing the whole ContactManagerImpl object into an xml
file, I now am reading in the data structures. And this is now within
the try block. (Guided by KLM's code). Still not sure if I need the
close() method though.
changed as many of the types of the maps, as well as some of the
meetings, from implementation types to interface types, as I could.
added while block to generateId() which guarantees id to be unique.
trying to debug the test/code for getPastMeeting() to work and
generateId() to work properly.
debugging toString(Calendar) method and generateId(String) method.
moved the private methods to the top, below constructor.
discover via JUnit that my use of contains() was naive. Java only
compares the memory of the contact objects, not the ids. If I try to
override equals, Eclipse complains that it's not in Contact Manager
interface. So I made a new private method exists(Contact) which checks
whether the passed contact is present in the map of all contacts held in
ContactManagerImpl. I am making another new private method
kontains(Set<Contact>, Contact) which checks if the contact is present
in the set of contacts.
Kontains(Set<Contact>,Contact) method now written.
kontains() method change name to contains()
re-written getFutureMeetingList() after having added the new private
methods include contains(). Continued with my trend to alter my code to
declare as much as I can with interface types and initialisations with
implementation classes as late as seems possible to me.
changed getFutureMeetingList(Contact), replacing List with SortedSet so
that the returned list will be ordered (hopefully chronologically!). 
wrote getFutureMeetingList(Calendar) in a similar way.
making some corrections to addFutureMeeting and getPastMeeting.
I meant to say, made corrections to addFutureMeeting(),
getPastingMeeting() and getFutureMeeting().
I meant to say - corrected addFutureMeeting(), getPastMeeting() and
getFutureMeeting().