Package pos_system.models
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.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRepräsentiert eine Option, die bei einem Produkt zur Auswahl stehen. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionOrderItem(Product baseProduct, OrderItem.Option size, List<OrderItem.Option> options) OrderItems sind Instanzen vonProduct, welche zu Bestellungen hinzugefügt werden können. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFoodOption(OrderItem.Option option) Fügt eine Zusatzoption zu dem Item hinzu.doubleBerechnet den Preis des Items basierend auf ausgewählter Größe und der ausgewählten Zusatzoptionen.Gibt eine Liste für die zu dem Basis-Produkt zugehörigen Zusatzoptionen aus.Gibt eine Liste für die zu dem Basis-Produkt zugehörigen Größenoptionen aus.Gibt das zu dem Item zugehörige Basis-Produkt zurück.Gibt eine Liste der hinzugefügten Zusatzoptionen aus.Gibt die ausgewählte Größenoption zurück.voidremoveFoodOption(OrderItem.Option option) Entfernt eine Zusatzoption zu dem Item hinzu.voidsetSizeOption(OrderItem.Option sizeOption) Setzt die Größenoption für dieses Item.toString()Methods inherited from class pos_system.util.observer.Observable
addObserver
-
Field Details
-
NO_OPTION
-
-
Constructor Details
-
OrderItem
OrderItems sind Instanzen vonProduct, 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 kannNO_OPTIONverwendet 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
Gibt das zu dem Item zugehörige Basis-Produkt zurück.- Returns:
- Das hinterlegt Produkt.
- See Also:
-
getSizeOption
Gibt die ausgewählte Größenoption zurück.- Returns:
- Die Größenoption des Produkts.
- See Also:
-
setSizeOption
Setzt die Größenoption für dieses Item. Als default kannNO_OPTIONverwendet werden. Wenn sizeOption null ist, wird keine Veränderung vorgenommen.- Parameters:
sizeOption- Die zu setztende Größenoption.
-
getFoodOptions
Gibt eine Liste der hinzugefügten Zusatzoptionen aus.- Returns:
- Die hinzugebuchten Zusatzoptionen.
- See Also:
-
addFoodOption
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
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
Gibt eine Liste für die zu dem Basis-Produkt zugehörigen Größenoptionen aus. Damit diese Methode funktioniert, muss dieProductDatabaseinitialisiert worden sein.- See Also:
-
getAvailableFoodOptions
Gibt eine Liste für die zu dem Basis-Produkt zugehörigen Zusatzoptionen aus. Damit diese Methode funktioniert, muss dieProductDatabaseinitialisiert worden sein.- See Also:
-
toString
-