task 2
This commit is contained in:
		| @@ -2,8 +2,11 @@ package ch.hevs.isc.slopify_v2 | ||||
|  | ||||
| import scala.collection.mutable.ArrayBuffer | ||||
|  | ||||
| class Album(val name: String) { | ||||
|   private var songs: ArrayBuffer[Song] = new ArrayBuffer() | ||||
|   def addSong(song: Song): Unit = songs.addOne(song) | ||||
|   def containsSong(song: Song): Boolean = songs.contains(song) | ||||
| class Album(val name: String) extends Serializable { | ||||
|   private var _songs: ArrayBuffer[Song] = new ArrayBuffer() | ||||
|   def addSong(song: Song): Unit = _songs.addOne(song) | ||||
|   def containsSong(song: Song): Boolean = _songs.contains(song) | ||||
|   def getSongs(): Array[Song] = _songs.toArray | ||||
|  | ||||
|   override def toString: String = s"<Album '$name': ${_songs.length} song(s)>" | ||||
| } | ||||
|   | ||||
| @@ -2,9 +2,12 @@ package ch.hevs.isc.slopify_v2 | ||||
|  | ||||
| import scala.collection.mutable.ArrayBuffer | ||||
|  | ||||
| class Artist(val name: String) { | ||||
|   private var albums: ArrayBuffer[Album] = new ArrayBuffer() | ||||
|   def addAlbum(album: Album): Unit = albums.addOne(album) | ||||
| class Artist(val name: String) extends Serializable { | ||||
|   private var _albums: ArrayBuffer[Album] = new ArrayBuffer() | ||||
|   def addAlbum(album: Album): Unit = _albums.addOne(album) | ||||
|  | ||||
|   def hasAlbum(album: Album): Boolean = albums.contains(album) | ||||
|   def hasAlbum(album: Album): Boolean = _albums.contains(album) | ||||
|   def getAlbums(): Array[Album] = _albums.toArray | ||||
|  | ||||
|   override def toString: String = s"<Artist '$name': ${_albums.length} album(s)>" | ||||
| } | ||||
|   | ||||
| @@ -2,8 +2,11 @@ package ch.hevs.isc.slopify_v2 | ||||
|  | ||||
| import scala.collection.mutable.ArrayBuffer | ||||
|  | ||||
| class DataBase { | ||||
|   private var artists: ArrayBuffer[Artist] = new ArrayBuffer() | ||||
|   def addArtist(artist: Artist): Unit = artists.addOne(artist) | ||||
|   def containsArtist(artist: Artist): Boolean = artists.contains(artist) | ||||
| class DataBase extends Serializable { | ||||
|   private var _artists: ArrayBuffer[Artist] = new ArrayBuffer() | ||||
|   def addArtist(artist: Artist): Unit = _artists.addOne(artist) | ||||
|   def containsArtist(artist: Artist): Boolean = _artists.contains(artist) | ||||
|   def getArtists(): Array[Artist] = _artists.toArray | ||||
|  | ||||
|   override def toString: String = s"<Database: ${_artists.length} artist(s)>" | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| package ch.hevs.isc.slopify_v2 | ||||
|  | ||||
| import java.io.File | ||||
| import java.io.{File, FileInputStream, FileOutputStream, ObjectInput, ObjectInputStream, ObjectOutputStream} | ||||
|  | ||||
| object DataBaseHelper { | ||||
|   def create(directory:String) : DataBase = { | ||||
| @@ -52,11 +52,30 @@ object DataBaseHelper { | ||||
|     return db | ||||
|   } | ||||
|  | ||||
|   def save(fileName:String, db:DataBase) : Unit = ??? | ||||
|   def load(fileName:String) : DataBase = ??? | ||||
|   def save(fileName: String, db: DataBase) : Unit = { | ||||
|     val fos: FileOutputStream = new FileOutputStream(fileName) | ||||
|     val oos: ObjectOutputStream = new ObjectOutputStream(fos) | ||||
|     oos.writeObject(db) | ||||
|     oos.close() | ||||
|   } | ||||
|   def load(fileName:String) : DataBase = { | ||||
|     val fis: FileInputStream = new FileInputStream(fileName) | ||||
|     val ois: ObjectInputStream = new ObjectInputStream(fis) | ||||
|     val db: DataBase = ois.readObject().asInstanceOf[DataBase] | ||||
|     ois.close() | ||||
|     return db | ||||
|   } | ||||
|  | ||||
|   def main(args: Array[String]): Unit = { | ||||
|     val db: DataBase = create("res/songs") | ||||
|     println(db) | ||||
|     val artists: Array[Artist] = db.getArtists() | ||||
|     println(artists(0)) | ||||
|  | ||||
|     save("res/db.bin", db) | ||||
|     val db2: DataBase = load("res/db.bin") | ||||
|     println(db2) | ||||
|     val artists2: Array[Artist] = db2.getArtists() | ||||
|     println(artists2(0)) | ||||
|   } | ||||
| } | ||||
| @@ -1,5 +1,5 @@ | ||||
| package ch.hevs.isc.slopify_v2 | ||||
|  | ||||
| class Song(val title: String, val number: Int) { | ||||
|  | ||||
| class Song(val title: String, val number: Int) extends Serializable { | ||||
|   override def toString: String = s"<Song n° $number '$title'>" | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user