Overview
This project has two parts: implementing a sorted linked list and
a media data manager. The media data manager keeps track of media (songs and movies)
a database system has. The manager is a simplified version of the Itunes data manager.
Objectives
This project will allow you practice linked lists, sets, maps
and test development.
Grading
- (50%) Public Tests
- (30%) Release Tests
- (10%) Student Tests
- (10%) Style
Clarifications
Any clarifications or corrections associated with this project will be
available at: Project
Clarifications
Code Distribution
The project's code distribution is available by checking out the project
named MediaManager. The code distribution provides you with the following:
- mediaManager package → Includes the MediaManager.java interface
with the data manager methods you need to implement.
- MyList package → Includes the class representing the linked list.
- tests package → Includes the public and student tests modules.
- Text files → Represent the expected output for
public tests.
Specifications
You are expected to implement methods for the MySortedLinkedList class. In addition you
must implement a class named Manager (not provided with the code distribution) that implements
the MediaManager interface. The javadoc describing what you must implement can be found at:
Project Javadoc
No secret tests are associated with this project. You have a maximum of
three tokens in the submit server.
Requirements
- You must define and use the following classes during the implementation of the data manager.
- MediaFile → represents a movie or a song.
- Song
- Movie
- Manager → implements the MediaManager interface.
- Any other classes you understand are necessary. All these classes must appear
in the mediaManager package.
- Your data manager must define and use the following map:
TreeMap<String, MediaFile> mediaDatabase
The map stores all the media information.
- Your data manager must define and use the following map:
HashMap<String, ArrayList<String>> playLists
The map stores information about the playlists in the system.
- Submitting Immediately After Checking Out → You
must attempt to submit your project immediately after checking out the
project (even if you have not implemented any methods). This will allow
you to verify that the submission process is working as expected.
- Submit Often → This will keep versions of your
project in the submit server that are easy to retrieve (you can also get
previous versions from your CVS repository). If your computer crashes or
you experience any other problem you will have a permanent backup in the
submit server.
- IMPORTANT → If you have a problem with your code
and need assistance during office hours, you need to have a student
test(s) that illustrates the problem you are experiencing.
- See StudentTests.html
for information regarding the implementation of student tests for this
project.
- Style
- Good variable names.
- You must avoid code duplication by calling appropriate methods
(rather than cutting and pasting code). You may define your own
private utility methods to perform often repeated tasks.
- Style as defined by the Eclipse Format Element option (Source
→ Format → Format Element) or as specified in Code
Conventions for the JavaTM Programming Language (focus on the
following sections: Indentation, Declarations, Statements, White
Space, and Naming Conventions).
- Although you should avoid source lines exceeding 80 characters, you
will not be penalize if they are present in your code.
Good Faith Attempt
The good faith attempt for this project is represented by the public tests
testListAdd, testListRemove and testManagerAdd. You must pass these tests
in order to satisfy the good faith attempt requirement.