Class Inventario

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

public class Inventario extends Object implements Iterable<Giocattolo>
Classe concreta mutabile che rappresenta un inventario.

L'inventario tiene traccia della numerosità di ciascun giocattolo in una collezione di essi; ad esso è possibile aggiungere o rimuovere giocattoli e conoscere quanti giocattoli di un certo tipo contenga.

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

  • Field Details

    • inventario

      private final Map<Giocattolo,Integer> inventario
      Mappa che tiene traccia della numerosità di ciascun giocattolo presente nell'inventario
  • Constructor Details

    • Inventario

      public Inventario()
      Costruisce un inventario vuoto.
    • Inventario

      public Inventario(Map<Giocattolo,Integer> inventario)
      Costruisce un inventario a partire da una mappa che, per ciascun giocattoo, indica quanti ne debba contenere l'inventario.
      Parameters:
      inventario - una mappa tra giocattoli e le loro numerosità.
      Throws:
      NullPointerException - se inventario è null, o contiene chiavi o valori uguali a null.
      IllegalArgumentException - se uno dei valori non è positivo.
    • Inventario

      public Inventario(Inventario originale)
      Costruisce una copia dell'inventario dato.
      Parameters:
      originale - l'inventario di cui effettuare una copia.
      Throws:
      NullPointerException - se inventario è null.
  • Method Details

    • aggiungi

      public int aggiungi(int num, Giocattolo giocattolo)
      Aggiunge un certo numero di giocattoli dello stesso tipo all'inventario. Se sono già presenti giocattoli di quel tipo, ne aggiorna il numero.
      Parameters:
      num - il numero di giocattoli da aggiungere.
      giocattolo - il giocattolo da aggiungere.
      Returns:
      il numero totale dei giocattoli del tipo appena aggiunto presenti nell'inventario.
      Throws:
      NullPointerException - se il giocattolo è null.
      IllegalArgumentException - se il numero non è positivo.
    • aggiungi

      public int aggiungi(Giocattolo giocattolo)
      Aggiunge un giocattolo all'inventario, se il giocattolo era già presente ne aumenta di uno la numerosità.
      Parameters:
      giocattolo - il giocattolo da aggiungere.
      Returns:
      il numero totale dei giocattoli del tipo appena aggiunto presenti nell'inventario.
      Throws:
      NullPointerException - se il giocattolo è null.
    • rimuovi

      public int rimuovi(int num, Giocattolo giocattolo)
      Rimuove (se possibile) il numero indicato di giocattoli di un certo tipo dall'inventario.
      Parameters:
      num - il numero di giocattoli da rimuovere.
      giocattolo - il giocattolo da rimuovere.
      Returns:
      il numero rimanente di giocattoli del tipo appena rimosso ancora presenti nell'inventario.
      Throws:
      NullPointerException - se il giocattolo è null.
      IllegalArgumentException - se il numero non è positivo, o eccede il numero di giocattoli di quel tipo presenti nell'inventario.
    • quantità

      public int quantità(Giocattolo giocattolo)
      Restituisce il numero di giocattoli del tipo indicato presenti nell'inventario.
      Parameters:
      giocattolo - il giocattolo.
      Returns:
      il numero di giocattoli di tale tipo presenti nell'inventario, (eventualmente 0 se l'inventario non contiene il giocattolo indicato).
      Throws:
      NullPointerException - se giocattolo è null
    • iterator

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

      public String toString()
      Overrides:
      toString in class Object