Class ProductDatabase

java.lang.Object
pos_system.database.ProductDatabase

public final class ProductDatabase extends Object
Eine Abstraktion der Datenbank, in der alle Produktinformationen gespeichert sind. Damit die Datenbank sinnvoll eingesetzt werden kann, muss sie mit init() initialisiert werden. Der wichtigste Bestandteil der Datenbank sind die Produkte.

Die genauen Informationen zu den Inhalten der Datenbanktabellen ist auf der Package-Info Seite hier.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    Diese Methode abstrahiert den Datenbankaufruf zum Suchen eines bestimmten Allergens in der Datenbank mithilfe der Produkt-ID.
    static List<Integer>
    getAllergensOfProduct(int productId)
    Gibt die Liste der IDs der in der Datenbank gespeicherten Allergene zu einer Produkt-ID zurück.
    static List<Integer>
    Gibt die Liste der IDs der in der Datenbank gespeicherten Allergene zu einem Produkt zurück.
    static String
    Diese Methode abstrahiert den Datenbankaufruf zum Suchen einer Zusatzoption für Gerichte in der Datenbank mithilfe der Produkt-ID.
    static Double
    getFoodOptionPrice(int foodOptionId)
    Holt den Preis-Aufschlag in Euro zu einer Zusatzoption-ID.
    static List<Integer>
    getFoodOptionsOfProduct(int productId)
    Gibt die Liste der IDs der in der Datenbank gespeicherten Zusatzoptionen zu einer Produkt-ID zurück.
    static List<Integer>
    Gibt die Liste der IDs der in der Datenbank gespeicherten Zusatzoptionen zu einem Produkt zurück.
    static Product
    Diese Methode abstrahiert den Datenbankaufruf zum Suchen eines Produktes mithilfe der Produkt-ID.
    static List<Product>
    Diese Methode abstrahiert den Datenbankaufruf zur Extraktion aller Produkte als Liste aus der Datenbank
    static String
    Diese Methode abstrahiert den Datenbankaufruf zum Suchen einer Größenoption für Gerichte in der Datenbank mithilfe der Produkt-ID.
    static Double
    getSizeOptionPrice(int sizeId)
    Holt den Preis-Faktor in Prozent zu einer Größenoption-ID.
    static List<Integer>
    getSizeOptionsOfProduct(int productId)
    Gibt die Liste der IDs der in der Datenbank gespeicherten Größenoptionen zu einer Produkt-ID zurück.
    static List<Integer>
    Gibt die Liste der IDs der in der Datenbank gespeicherten Größenoptionen zu einem Produkt zurück.
    static void
    Initialisiert die Datenbank.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ProductDatabase

      public ProductDatabase()
  • Method Details

    • getProductById

      public static Product getProductById(int id)
      Diese Methode abstrahiert den Datenbankaufruf zum Suchen eines Produktes mithilfe der Produkt-ID.

      SELECT * FROM products WHERE id=id

      Parameters:
      id - ID des gesuchten Produkts.
      Returns:
      Das als id in der Datenbank gespeicherte Produkt.
    • getProducts

      public static List<Product> getProducts()
      Diese Methode abstrahiert den Datenbankaufruf zur Extraktion aller Produkte als Liste aus der Datenbank

      SELECT * FROM products

      Returns:
      Liste aller Produkte in der Datenbank.
      See Also:
    • getAllergenById

      public static String getAllergenById(int id)
      Diese Methode abstrahiert den Datenbankaufruf zum Suchen eines bestimmten Allergens in der Datenbank mithilfe der Produkt-ID.

      SELECT * FROM allergens WHERE id=id

      Parameters:
      id - ID des gesuchten Allergens.
      Returns:
      Das als id in der Datenbank gespeicherte Allergen.
    • getFoodOptionById

      public static String getFoodOptionById(int id)
      Diese Methode abstrahiert den Datenbankaufruf zum Suchen einer Zusatzoption für Gerichte in der Datenbank mithilfe der Produkt-ID.

      SELECT * FROM foodoptions WHERE id=id

      Parameters:
      id - ID der gesuchten Zusatzoption.
      Returns:
      Das als id in der Datenbank gespeicherte Zusatzoption.
    • getSizeOptionById

      public static String getSizeOptionById(int id)
      Diese Methode abstrahiert den Datenbankaufruf zum Suchen einer Größenoption für Gerichte in der Datenbank mithilfe der Produkt-ID.

      SELECT * FROM sizeoptions WHERE id=id

      Parameters:
      id - ID der gesuchten Größenoption.
      Returns:
      Das als id in der Datenbank gespeicherte Größenoption.
    • getAllergensOfProduct

      public static List<Integer> getAllergensOfProduct(int productId)
      Gibt die Liste der IDs der in der Datenbank gespeicherten Allergene zu einer Produkt-ID zurück.

      SELECT ids FROM (SELECT product_id, group_concat(allergen_id) AS ids FROM allergens_with_products GROUP BY product_id) WHERE product_id=productId

      Parameters:
      productId - Produkt-ID, zu denen alle Allergene gelistet werden sollen.
      Returns:
      Liste der IDs der in der Datenbank gespeicherten Allergene zu einer Produkt-ID zurück.
      See Also:
    • getAllergensOfProduct

      public static List<Integer> getAllergensOfProduct(Product product)
      Gibt die Liste der IDs der in der Datenbank gespeicherten Allergene zu einem Produkt zurück.
      Parameters:
      product - Produkt, zu dem alle Allergene gelistet werden sollen.
      Returns:
      Liste der IDs der in der Datenbank gespeicherten Allergene zu einer Produkt-ID zurück.
      See Also:
    • getFoodOptionsOfProduct

      public static List<Integer> getFoodOptionsOfProduct(int productId)
      Gibt die Liste der IDs der in der Datenbank gespeicherten Zusatzoptionen zu einer Produkt-ID zurück.

      SELECT ids FROM (SELECT product_id, group_concat(foodoption_id) AS ids FROM foodoptions_with_products GROUP BY product_id) WHERE product_id=productId

      Parameters:
      productId - Produkt-ID, zu denen alle Zusatzoptionen gelistet werden sollen.
      Returns:
      Liste der IDs aller Zusatzoptionen zu einem Produkt in der Datenbank.
      See Also:
    • getFoodOptionsOfProduct

      public static List<Integer> getFoodOptionsOfProduct(Product product)
      Gibt die Liste der IDs der in der Datenbank gespeicherten Zusatzoptionen zu einem Produkt zurück.
      Parameters:
      product - Produkt, zu dem alle Zusatzoptionen gelistet werden sollen.
      Returns:
      Liste der IDs aller Zusatzoptionen zu einem Produkt in der Datenbank.
      See Also:
    • getSizeOptionsOfProduct

      public static List<Integer> getSizeOptionsOfProduct(int productId)
      Gibt die Liste der IDs der in der Datenbank gespeicherten Größenoptionen zu einer Produkt-ID zurück.

      SELECT ids FROM (SELECT product_id, group_concat(sizeoption_id) AS ids FROM sizeoptionss_with_products GROUP BY product_id) WHERE product_id=productId

      Parameters:
      productId - Produkt-ID, zu denen alle Größenoptionen gelistet werden sollen.
      Returns:
      Liste der IDs aller Größenoptionen zu einem Produkt in der Datenbank.
      See Also:
    • getSizeOptionsOfProduct

      public static List<Integer> getSizeOptionsOfProduct(Product product)
      Gibt die Liste der IDs der in der Datenbank gespeicherten Größenoptionen zu einem Produkt zurück.
      Parameters:
      product - Produkt, zu dem alle Größenoptionen gelistet werden sollen.
      Returns:
      Liste der IDs aller Größenoptionen zu einem Produkt in der Datenbank.
      See Also:
    • getFoodOptionPrice

      public static Double getFoodOptionPrice(int foodOptionId)
      Holt den Preis-Aufschlag in Euro zu einer Zusatzoption-ID.

      SELECT price FROM foodoptions WHERE id=foodOptionId

      Parameters:
      foodOptionId - Die ID der Zusatzoption.
      Returns:
      Preis-Aufschlag in Euro, die das Buchen dieser Option mitsichbringt.
    • getSizeOptionPrice

      public static Double getSizeOptionPrice(int sizeId)
      Holt den Preis-Faktor in Prozent zu einer Größenoption-ID.

      SELECT price FROM sizeoptions WHERE id=sizeId

      Parameters:
      sizeId - Die ID der Größenoption.
      Returns:
      Der Preis-Faktor in Prozent, der auf den Produkt-Basis-Preis beim Buchen dieser Option gerechnet wird.
    • init

      public static void init()
      Initialisiert die Datenbank. In dieser Methode müssen keine Fehler gesucht werden, sie muss also nicht getestet werden. Es ist allerdings sinnvoll, diese Methode im Setup von Tests einzusetzen, um die Datenbank benutzen zu können. SEDRICCCCC