I am working on similar assignment and have same requirements.
The find method in DBMain interface says:
// Returns an array of record numbers that match the specified
// criteria. Field n in the database file is described by
// criteria[n]. A null value in criteria[n] matches any field
// value. A non-null value in criteria[n] matches any field
// value that begins with criteria[n]. (For example, "Fred"
// matches "Fred" or "Freddy".)
public int [] find(
String [] criteria)
First, the number of criteria elements MUST not exceed number of fields in one record in DB. This find method should be at DB layer and could be used for both (alone, server) modes.
For search, GUI part says:
"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."
Now here we need records not their physical location numbers in DB after search is done. I think the first half of above statement simply means bring all records from the DB and second half means that search is based on both name and location or any one of them (when second/first is null/empty).
The search JDialog box which I designed has two text fields (name, location) and two check boxes (Select All, Case Sensitive). Case Sensitive check box works in case of field based search only.
This is my understanding, specifications are quite confusing. I am also skeptical about many such things.