X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fpizzaapplication%2Fapplication%2FPizzaApplication.java;h=09993d40a28168e02561b2c89f63e799627d9fa8;hb=ad3a217eb62ab36fab7004786b42e44edc063171;hp=38487981be35699f260359758ccf5369afd0fb0d;hpb=45b1ad2ec5cbad45ec73d98b76833d0fc9c7bb73;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 38487981..09993d40 100644 --- a/src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java +++ b/src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java @@ -17,13 +17,19 @@ 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; /** @@ -37,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" @@ -48,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 @@ -100,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. * @@ -201,22 +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 all products + * Some "getter" for a an array of only available products * + * @return Only available products + * @throws javax.servlet.ServletException If anything went wrong + */ + public Iterator getAvailableProducts () throws ServletException; + + /** + * Some "getter" for a an array of all products + * * @return All products - * @throws java.io.IOException If an IO error occurs - * @throws org.mxchange.jcore.exceptions.BadTokenException If a bad token was found + * @throws javax.servlet.ServletException If anything went wrong */ - public Iterator getProducts () throws IOException, BadTokenException; + public Iterator getAllProducts () throws ServletException; /** * Some "getter" for a an array of all categories * * @return All categories - * @throws java.io.IOException If an IO error occurs - * @throws org.mxchange.jcore.exceptions.BadTokenException If a bad token was found + * @throws javax.servlet.ServletException If anything went wrong */ - public Iterator getCategories () throws IOException, BadTokenException; + public Iterator getCategories () throws ServletException; /** * Checks if given Product instance is available and returns a printable @@ -226,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; }