X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fpizzaapplication%2Fapplication%2FPizzaApplication.java;h=09993d40a28168e02561b2c89f63e799627d9fa8;hb=ad3a217eb62ab36fab7004786b42e44edc063171;hp=3c31ab0863248743b931928ecd05f45edecbe1c0;hpb=17718d22c33228fb5d21ed685fda12b87c22f7ea;p=pizzaservice-war.git diff --git a/src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java b/src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java index 3c31ab08..09993d40 100644 --- a/src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java +++ b/src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java @@ -16,9 +16,20 @@ */ package org.mxchange.pizzaapplication.application; +import java.io.IOException; +import java.sql.SQLException; +import java.util.Iterator; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.mxchange.jcore.application.Application; +import org.mxchange.jcore.exceptions.BadTokenException; +import org.mxchange.jcore.exceptions.UnsupportedDatabaseBackendException; +import org.mxchange.pizzaapplication.category.Category; +import org.mxchange.pizzaapplication.exceptions.CategoryTitleAlreadyUsedException; +import org.mxchange.pizzaapplication.exceptions.ProductTitleAlreadyUsedException; import org.mxchange.pizzaapplication.product.Product; /** @@ -32,9 +43,14 @@ public interface PizzaApplication extends Application { public static final String HTTP_PARAM_AMOUNT = "amount"; //NOI18N /** - * HTTP parameter "choose" + * HTTP parameter "id" */ - public static final String HTTP_PARAM_CHOOSE = "choose"; //NOI18N + public static final String HTTP_PARAM_ITEM_ID = "id"; //NOI18N + + /** + * HTTP parameter "type" + */ + public static final String HTTP_PARAM_ITEM_TYPE = "type"; //NOI18N /** * Session key "ordered" @@ -43,8 +59,10 @@ public interface PizzaApplication extends Application { /** * Mask for all parameters + * @deprecated Please refacture! */ - public static final String HTTP_PARAM_MASK = "%s[%s]"; //NOI18N + @Deprecated + static final String HTTP_PARAM_MASK = "%s[%s]"; //NOI18N /** * Some "getter" for amount from session @@ -95,6 +113,17 @@ public interface PizzaApplication extends Application { */ public float getTotalPositionPriceFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session); + /** + * Initializes this instance with given ServletContext + * + * @param context Servlet context + * @throws org.mxchange.jcore.exceptions.UnsupportedDatabaseBackendException If the backend is unsupported + * @throws java.sql.SQLException If an SQL error occurs + * @throws java.io.IOException If an IO error occurs + * @throws org.mxchange.jcore.exceptions.BadTokenException If a bad token was found + */ + public void init (final ServletContext context) throws UnsupportedDatabaseBackendException, SQLException, IOException, BadTokenException; + /** * Checks whether the given product is choosen, request overules session. * @@ -111,8 +140,9 @@ public interface PizzaApplication extends Application { * @param request Request instance * @param session Session instance * @return Total price of all choosen products + * @throws javax.servlet.ServletException If something unexpected happened */ - public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session); + public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session) throws ServletException; /** * Calculates total amount of all choosen products @@ -120,8 +150,9 @@ public interface PizzaApplication extends Application { * @param request Request instance * @param session Session instance * @return Total amount of all choosen products + * @throws javax.servlet.ServletException If something unexpected happened */ - public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session); + public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session) throws ServletException; /** * Some "getter" for HTML code 'checked="checked"' if the product is choosen @@ -139,8 +170,9 @@ public interface PizzaApplication extends Application { * @param request Request instance * @param session Session instance * @return Whether the product is choosen + * @throws javax.servlet.ServletException If something unexpected happened */ - public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session); + public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session) throws ServletException; /** * Marks given product as ordered in session @@ -193,19 +225,28 @@ public interface PizzaApplication extends Application { public void setValueInSession (final HttpSession session, final String key, final Object value); /** - * Some "getter" for a an array of unmarked products + * Some "getter" for a an array of only available products * - * @param session HttpSession instance - * @return Unmarked products + * @return Only available products + * @throws javax.servlet.ServletException If anything went wrong */ - public Product[] getUnmarkedProducts (final HttpSession session); + public Iterator getAvailableProducts () throws ServletException; /** * Some "getter" for a an array of all products - * - * @return Unmarked products + * + * @return All products + * @throws javax.servlet.ServletException If anything went wrong + */ + public Iterator getAllProducts () throws ServletException; + + /** + * Some "getter" for a an array of all categories + * + * @return All categories + * @throws javax.servlet.ServletException If anything went wrong */ - public Product[] getProducts (); + public Iterator getCategories () throws ServletException; /** * Checks if given Product instance is available and returns a printable @@ -215,4 +256,67 @@ public interface PizzaApplication extends Application { * @return Human-readable version of product availability */ public String getPrintableProduktAvailability (final Product product); + + /** + * Returns a printable (human-readable) string of product's category + * + * @param product Product instance to check + * @return Human-readable version of product availability + * @throws javax.servlet.ServletException If something unexpected happened + */ + public String getPrintableProduktCategory (final Product product) throws ServletException; + + /** + * Marks all choosen products as ordered + * + * @param request Request instance + * @param session Session instance + * @throws javax.servlet.ServletException If something unexpected happened + */ + public void markAllChoosenProductsAsOrdered (final HttpServletRequest request, final HttpSession session) throws ServletException; + + /** + * Adds given category data from request to database + * + * @param request Request instance + * @throws javax.servlet.ServletException If something unexpected happened + * @throws org.mxchange.pizzaapplication.exceptions.CategoryTitleAlreadyUsedException If the given title is already used + */ + public void doAdminAddCategory (final HttpServletRequest request) throws ServletException, CategoryTitleAlreadyUsedException; + + /** + * Adds given product data from request to database + * + * @param request Request instance + * @throws javax.servlet.ServletException If something unexpected happened + * @throws org.mxchange.pizzaapplication.exceptions.ProductTitleAlreadyUsedException If the given product title is already used + */ + public void doAdminAddProduct (final HttpServletRequest request) throws ServletException, ProductTitleAlreadyUsedException; + + /** + * Generates link HTML code for given category's parent id, if set. This + * link then points to products.jsp?category_id=x + * + * @param category Category instance + * @return HTML code + */ + public String generateLinkForParent (final Category category); + + /** + * Handles admin product form requests + * + * @param request Request instance + * @param response Response instance + * @throws ServletException If something unexpected happened + */ + public void doAdminHandleProductForms (final HttpServletRequest request, final HttpServletResponse response) throws ServletException; + + /** + * Handles admin category form requests + * + * @param request Request instance + * @param response Response instance + * @throws ServletException If something unexpected happened + */ + public void doAdminHandleCategoryForms (final HttpServletRequest request, final HttpServletResponse response) throws ServletException; }