Napište rozhraní AudioMedium, které bude rozšiřovat rozhraní java.io.Serializable a bude definovat metody:
- void setTrackList(List<String> data) - nastaví seznam názvů skladeb na médiu
- List<String> getTrackList() - vrátí nemodifikovatelný seznam názvů skladeb na médiu
- void setInterpret(String interpret) - nastaví jméno interpreta
- String getInterpret() - vrátí jméno interpreta
- void setTitle(String title) - nastaví název média
- String getTitle() - vrátí název média
Dále napište třídu AudioCD, která bude implementovat rozhraní AudioMedium, které umožní uložení informací o CD do souboru. Data se budou ukládat ve formátu CSV (id;interpret;titul;[skladba1; skladba2; ... skladban]). AudioCD bude mít atributy interpret, titul a dále seznam řetězců s názvy jednotlivých skladeb na CD.
Jako poslední implementujte třídu AudioLibrary, která bude mít jediný atribut a to seznam médií uložených v audiotéce. A dále bude mít metody:
- void add(AudioMedium) - přidá AudioCD do audiotéky
- void remove(AudioMedium) - odstraní AudioCD z audiotéky
- store(OutputStream out)- uloží data na disk do binárního souboru.
- load(InputStream in) - načte data ze souboru vytvořeného pomocí metody store.