I am right at the end of the URLyBIRD assignment and am cross referencing my work with all of the MUST requirements before packaging and submission... I am slightly concerned with a particular MUST requirement which I thought I'd share with you for some advice...
1. Requirement: It must allow the user to book a selected record, updating the database file accordingly.
I have thus far implemented a record caching structure, which only writes back to file on termination of the program (shutdown hook in Data class). Do you think I would fail the above must requirement as I am not updating the database file every time a client books a hotel record?
2. Requirement: Your data access class must be called "Data.java", must be in a package called "suncertify.db", and must implement the following interface: [DBAccess]
I have extended the DBAccess interface and added a method getAllRecords() to speed up the system. Are extensions OK in light of the above requirement?
3. Requirement: You must use RMI over JRMP (do not use IIOP).
Does the standard default RMI mechanism adhere to the above requirement?
That was exactly what I wanted to hear... Have documented decisions thoroughly...
Just one more thing...
4. Requirement: It must allow the user to search the data for all records, or for records where the name and/or location fields exactly match values specified by the user.
I think I'm confusing myself the more I think this over.
"or for records where the name and/or location fields exactly match values specified by the user" ....
mean: for a search result to be returned the search criteria must exactly match the record field? i.e: In order to return the Hotel California record, the user must search for 'Hotel California'.
or does it mean: for a search result to be returned the record criteria can partially contain the search criteria? ie: Hotel California record is return from search criteria 'Hotel', or 'California', or 'otel', or 'a'... etc.
I have implemented the second interpretation but I'm now aligning myself with the first one? In which case why do they state in the beginning of the project brief...
'The following are the "top level" features that must be implemented:
A client program with a graphical user interface that connects to the database
A data access system that provides record locking and a flexible search mechanism
Network server functionality for the database system'
... when a search mechanism based on the first interpretation is not really that flexible