Class AbstractCompratore

java.lang.Object
it.unimi.di.prog2.temisvolti.bancarelle.AbstractCompratore
Direct Known Subclasses:
CompratoreCasuale, CompratoreMinimoUnitario

public abstract class AbstractCompratore extends Object
Classe astratta che rappresenta un compratore.

Un compratore, dato un insieme di bancarelle, può determinare per un data quantità di un certo giocattola un Acquisto che la realizzi. Può farlo secondo diverse strategie che corrispondono a diverse implementazioni del metodo astratto compra(int, Giocattolo).

  • Field Details

    • bancarelle

      protected final Set<Bancarella> bancarelle
      L'elenco di bancarelle da cui effettuare gli acquisti.
  • Constructor Details

    • AbstractCompratore

      public AbstractCompratore(Set<Bancarella> bancarelle)
      Costruisce un compratore a partire dall'elenco di bancarelle da cui acquistare.
      Parameters:
      bancarelle - le bancarelle.
      Throws:
      NullPointerException - se le bancarello sono, o contengono, null.
      IllegalArgumentException - se l'insieme di bancarelle è vuoto.
  • Method Details

    • quantità

      public int quantità(Giocattolo giocattolo)
      Restituisce la quantità totale di un giocattolo acquistabile dall'unione di tutte le bancarelle.
      Parameters:
      giocattolo - il giocattolo.
      Returns:
      la somma delle quantità del giocattolo in tutte le bancarelle.
      Throws:
      NullPointerException - se il giocattolo è null.
    • compra

      public abstract Acquisto compra(int num, Giocattolo giocattolo)
      Restituisce un acquisto data una certa quantità di un giocattolo da comprare.
      Parameters:
      num - il numero di giocattoli da comprare.
      giocattolo - il giocattolo da comprare.
      Returns:
      un acquisto del giocattolo e quantità assegnate.
      Throws:
      NullPointerException - se il giocattolo è null.
      IllegalArgumentException - se il numero non è positivio, o eccede la disponibilità complessiva delle bancarelle.
    • toString

      public String toString()
      Overrides:
      toString in class Object