Class OrderItem

java.lang.Object
pos_system.util.observer.Observable
pos_system.util.mvc.Model
pos_system.models.OrderItem

public class OrderItem extends pos_system.util.mvc.Model
Diese Klasse abstrahiert semantisch die Produkte, die zu einer Bestellung hinzugefügt werden. Dabei kann ein Produkt in einer bestimmten Größe und mit bestimmten Zusatzoptionen bestellt werden. Dies wird beides als OrderItem.Option abstrahiert.
  • Field Details

  • Constructor Details

    • OrderItem

      public OrderItem(Product baseProduct, OrderItem.Option size, List<OrderItem.Option> options)
      OrderItems sind Instanzen von Product, welche zu Bestellungen hinzugefügt werden können. Ein OrderItem besteht dabei aus dem Basis-Produkt, einer Größe und einer Menge von Zusatzoptionen. Als eine Default-Größe kann NO_OPTION verwendet werden.
      Parameters:
      baseProduct - Das Produkt, auf dem dieses OrderItem basiert.
      size - Die Größe, in der dieses Produkt bestellt wird.
      options - Zusatzoptionen, die zu dem Produkt hinzubestellt werden.
  • Method Details

    • calculatePrice

      public double calculatePrice()
      Berechnet den Preis des Items basierend auf ausgewählter Größe und der ausgewählten Zusatzoptionen.
       
       calculatePrice = product.price * size.factor + option.price [for each option]
       
       
      Returns:
      (Basispreis des Produkts) * Größe + (Zusatzoption1, Zusatzoption2, ...)
      See Also:
    • getBaseProduct

      public Product getBaseProduct()
      Gibt das zu dem Item zugehörige Basis-Produkt zurück.
      Returns:
      Das hinterlegt Produkt.
      See Also:
    • getSizeOption

      public OrderItem.Option getSizeOption()
      Gibt die ausgewählte Größenoption zurück.
      Returns:
      Die Größenoption des Produkts.
      See Also:
    • setSizeOption

      public void setSizeOption(OrderItem.Option sizeOption)
      Setzt die Größenoption für dieses Item. Als default kann NO_OPTION verwendet werden. Wenn sizeOption null ist, wird keine Veränderung vorgenommen.
      Parameters:
      sizeOption - Die zu setztende Größenoption.
    • getFoodOptions

      public List<OrderItem.Option> getFoodOptions()
      Gibt eine Liste der hinzugefügten Zusatzoptionen aus.
      Returns:
      Die hinzugebuchten Zusatzoptionen.
      See Also:
    • addFoodOption

      public void addFoodOption(OrderItem.Option option)
      Fügt eine Zusatzoption zu dem Item hinzu. Wenn option null ist, wird nichts hinzugefügt.
      Parameters:
      option - Eine Zusatzoption, die zum Item hinzugefügt werden soll.
      See Also:
    • removeFoodOption

      public void removeFoodOption(OrderItem.Option option)
      Entfernt eine Zusatzoption zu dem Item hinzu. Wenn option null ist, wird nichts entfernt.
      Parameters:
      option - Eine Zusatzoption, die vom Item entfernt werden soll.
      See Also:
    • getAvailableSizeOptions

      public List<OrderItem.Option> getAvailableSizeOptions()
      Gibt eine Liste für die zu dem Basis-Produkt zugehörigen Größenoptionen aus. Damit diese Methode funktioniert, muss die ProductDatabase initialisiert worden sein.
      See Also:
    • getAvailableFoodOptions

      public List<OrderItem.Option> getAvailableFoodOptions()
      Gibt eine Liste für die zu dem Basis-Produkt zugehörigen Zusatzoptionen aus. Damit diese Methode funktioniert, muss die ProductDatabase initialisiert worden sein.
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object