Class Playlist

java.lang.Object
it.unimi.di.prog2.temisvolti.playfy.Playlist
All Implemented Interfaces:
Iterable<Album.Brano>

public class Playlist extends Object implements Iterable<Album.Brano>
Una classe mutabile che rappresenta una playlist.
  • Field Details

    • nome

      private String nome
      Il nome della playlist.
    • durata

      private Durata durata
      La durata complessiva della playlist.
    • brani

      private final List<Album.Brano> brani
      L'elenco di brani contenuti nella playlist.
  • Constructor Details

  • Method Details

    • nome

      public String nome()
      Restituisce il nome della playlist.
      Returns:
      li nome.
    • nome

      public void nome(String nome)
      Cambia il nome della playlst.
      Parameters:
      nome - il nome.
      Throws:
      NullPointerException - se il nome è null.
      IllegalArgumentException - se il nome è vuoto.
    • durata

      public Durata durata()
      Restituisce la durata complessiva della playlist.
      Returns:
      la durata.
    • numeroBrani

      public int numeroBrani()
      Restituisce il numero di brani della playlist.
      Returns:
      il numero di brani di questa playlist.
    • brano

      public Album.Brano brano(int pos)
      Restituisce il brano che ha nella playlist la posizione data.
      Parameters:
      pos - la posizione.
      Returns:
      il brano.
      Throws:
      IndexOutOfBoundsException - se la posizione non è compresa tra 1 e il numero di brani della playlist.
    • posizione

      public int posizione(Album.Brano brano)
      Restituisce la posizione nella playlist del brano dato.
      Parameters:
      brano - il brano.
      Returns:
      la sua posizione nella playlist, o 0 se il brano non appartiene all'album.
      Throws:
      NullPointerException - se il brano è null
    • accoda

      public void accoda(Album.Brano brano)
      Aggiunge il brano dato alla playlist.
      Parameters:
      brano - il brano.
      Throws:
      NullPointerException - se il brano è null.
    • rimuovi

      public void rimuovi(Album.Brano brano)
      Rimuove il brano dato dalla playlist.
      Parameters:
      brano - il brano.
      Throws:
      NullPointerException - se il brano è null.
    • fondi

      public Playlist fondi(String nome, Playlist altra)
      Fonde questa playlist con quella data.

      La fusione tra questa playlist ed una data è una nuova playlist (di nome dato) che contiene tutti i brani di questa playlist (eventualmente ripetuti) a cui sono accodati i brani dell'altra playlist nell'ordine in cui compaiono in essa, omettendo i brani contenuti in questa playlist.

      Parameters:
      nome - il nome della playlist risultante.
      altra - l'altra playlist con cui fondere questa.
      Returns:
      la playlist risultante.
      Throws:
      NullPointerException - se il nome, o l'altra playlist sono null.
      IllegalArgumentException - se il nome è vuoto.
    • brani

      public Iterator<Album.Brano> brani(Album album)
      Restituisce un iteratore che enumera tutti i brani della playlist che provengono dall'album dato.
      Parameters:
      album - l'album.
      Returns:
      l'iteartore.
      Throws:
      NullPointerException - se l'album è null.
    • album

      public Iterator<Album> album()
      Restituisce un iteratore che enumera (senza ripetizioni) gli album di cui esiste un brano in questa playlist.
      Returns:
      l'itertore.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • iterator

      public Iterator<Album.Brano> iterator()
      Specified by:
      iterator in interface Iterable<Album.Brano>