Class Bancarella

java.lang.Object
it.unimi.di.prog2.temisvolti.bancarelle.Bancarella
All Implemented Interfaces:
Iterable<Giocattolo>

public class Bancarella extends Object implements Iterable<Giocattolo>
Una bancarella ha un proprietario ed espone un certo insieme di giocattoli che può vendere.

È un Iterable dei giocattoli che contiene il suo inventario, in ordine lessicografico della loro rappresentazione testuale.

Dal momento che le bancarelle entreranno in diverse *collections* sono stati sovrascritti i metodi `equals` e `hashCode` in modo che siano uguali (ai fini del progetto) bancarelle col medesimo propirietario (indipendentemente da inventaroi e listino).

  • Field Details

    • proprietario

      public final String proprietario
      Il proprietario della bancarella.
    • listino

      private final Listino listino
      Il listino della bancarella.
    • inventario

      private final Inventario inventario
      L'inventario della bancarella.
  • Constructor Details

    • Bancarella

      public Bancarella(String proprietario, Inventario inventario, Listino listino)
      Costruisce una bancarella dato il proprietario, l'inventario e i listino.
      Parameters:
      proprietario - il proprietario.
      inventario - l'inventario.
      listino - il listino.
      Throws:
      NullPointerException - se uno dei parametri è null
      IllegalArgumentException - se l'inventario contiene un giocattolo il cui prezzo non è presente nel listino.
  • Method Details

    • vende

      public int vende(int num, Giocattolo giocattolo)
      Effettua la vendita del numero richiesto del giocattolo indicato.
      Parameters:
      num - il numero di giocattoli da vendere.
      giocattolo - il giocattolo da vendere.
      Returns:
      il numero rimanente di giocattoli del tipo appena venduto ancora presenti nell'inventario della bancarella.
      Throws:
      NullPointerException - se il giocattolo è null.
      IllegalArgumentException - se il numero non è positivo, o eccede il numero di giocattoli di quel tipo presenti nell'inventario della bancarella.
    • quantità

      public int quantità(Giocattolo giocattolo)
      Restituisce la quantità del giocattolo specificato nell'inventario della bancarella.
      Parameters:
      giocattolo - il giocattolo.
      Returns:
      il numero di giocattoli specificato nell'inventario della bancarella (eventualmente 0).
      Throws:
      NullPointerException - se giocattolo è null
    • prezzo

      public int prezzo(int num, Giocattolo giocattolo)
      Restituisce il prezzo della quantità indicata del giocattolo specificato.
      Parameters:
      num - la quantità di cui determinare il prezzo.
      giocattolo - il giocattolo da vendere.
      Returns:
      il prezzo della quantità indicata del giocattolo specificato.
      Throws:
      NullPointerException - se giocattolo è null
      NoSuchElementException - se al listino della bancarella non è noto il prezzo del giocattolo.
    • iterator

      public Iterator<Giocattolo> iterator()
      Specified by:
      iterator in interface Iterable<Giocattolo>
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object