Class OrderManager

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

public class OrderManager extends pos_system.util.mvc.Model
Der OrderManager verwaltet den Zustand über die aktuell laufende Bestellung. Es kann immer nur eine Bestellung gleichzeitig aktiv sein. Auf diese Bestellung kann dann zugegriffen werden, um OrderItems hinzuzufügen. Bestellungen können schlussendlich abgeschlossen werden, was diese zu jeweils einer FinishedOrder umwandeln oder abgebrochen werden.
  • Constructor Details

    • OrderManager

      public OrderManager()
      Erzeugt einen neuen OrderManager. Ein neu erzeugter OrderManager besitzt keine aktive Bestellung.
  • Method Details

    • newOrder

      public void newOrder() throws OrderManager.NoOrderException
      Erstellt eine neue Bestellung. Funktioniert nicht, wenn bereits eine Bestellung existiert. Diese muss zunächst abgebrochen oder fertiggestellt werden.
      Throws:
      OrderManager.NoOrderException - Wenn bereits eine Bestellung existiert.
      See Also:
    • cancelOrder

      public void cancelOrder()
      Bricht die aktuelle Bestellung ab.
    • finishOrder

      public FinishedOrder finishOrder() throws OrderManager.NoOrderException
      Schließt die aktuelle Bestellung ab. Funktioniert nicht, wenn keine Bestellung existiert.
      Returns:
      Die immutable Bestellung.
      Throws:
      OrderManager.NoOrderException - Wenn keine Bestellung existiert.
      See Also:
    • getCurrentOrder

      public Order getCurrentOrder()
      Gibt die aktuell genutzte Bestellung zurück. Wenn keine Bestellung existiert, wird null zurückgegeben.
      Returns:
      Die aktuelle Bestellung oder null.
      See Also:
    • hasCurrentOrder

      public boolean hasCurrentOrder()
      Bestimmt, ob eine Bestellugn existiert oder nicht.
      Returns:
      true, wenn eine Bestellung existiert, sonst false.
    • addOrderItem

      public void addOrderItem(OrderItem item) throws OrderManager.NoOrderException
      Fügt ein OrderItem zu der aktuellen Bestellung hinzu. Wenn item null ist, wird nichts hinzugefügt.
      Parameters:
      item - Das OrderItem, welches hinzugefügt werden soll.
      Throws:
      OrderManager.NoOrderException - Wenn keine Bestellung existiert.
    • removeOrderItem

      public void removeOrderItem(OrderItem item) throws OrderManager.NoOrderException
      Entfernt ein OrderItem von der aktuellen Bestellung hinzu. Wenn item null ist, wird nichts geändert.
      Parameters:
      item - Das OrderItem, welches entfernt werden soll.
      Throws:
      OrderManager.NoOrderException - Wenn keine Bestellung existiert.
    • setSelectedOrderItem

      public void setSelectedOrderItem(OrderItem item)
      Setzt das aktuell ausgewählte OrderItem. Wenn item null ist ODER nicht in der Bestellung ist ODER keine Bestellung existiert, wird nichts getan.
      Parameters:
      item - OrderIem, welches ausgewählt werden soll.
    • getSelectedOrderItem

      public OrderItem getSelectedOrderItem()
      Gibt das aktuell ausgewählte OrderItem aus. Wenn aktuell kein item ausgewählt ist ODER keine Bestellung existiert, wird null zurückgegeben.
      Returns:
      Das aktuell ausgewählte OrderItem oder null.
    • setSelectedOption

      public void setSelectedOption(OrderItem.Option option)
      Setzt die aktuell ausgewählte Option zu einem OrderItem. Wenn option null ist ODER keine Bestellung existiert, wird nichts getan.
      Parameters:
      option - Option, welche ausgewählt werden soll.
    • getSelectedOption

      public OrderItem.Option getSelectedOption()
      Gibt die aktuell ausgewählte Option aus. Wenn aktuell keine option ausgewählt ist ODER keine Bestellung existiert, wird null zurückgegeben.
      Returns:
      Das aktuell ausgewählte OrderItem oder null.
    • setOptionHasFocus

      public void setOptionHasFocus(boolean b)
    • getOptionHasFocus

      public boolean getOptionHasFocus()