+
+ /**
+ * Unmarks given product as choosen in session
+ *
+ * @param product Product to unmark as choosen
+ * @param session Session instance
+ */
+ public void unmarkProductAsChoosen(final Product product, final HttpSession session);
+
+ /**
+ * Some getter for printable value from session or an empty string for null.
+ *
+ * @param session Session instance
+ * @param key Key to get
+ * @return Value from key, empty string for null
+ */
+ public Object getPrintableValeFromSession (final HttpSession session, final String key);
+
+ /**
+ * Somewhat setter in session
+ *
+ * @param session Session instance
+ * @param key Session key to set
+ * @param value Value to set
+ */
+ public void setValueInSession (final HttpSession session, final String key, final Object value);
+
+ /**
+ * Some "getter" for a an array of only available products
+ *
+ * @return Only available products
+ * @throws javax.servlet.ServletException If anything went wrong
+ */
+ public Iterator<Product> getAvailableProducts () throws ServletException;
+
+ /**
+ * Some "getter" for a an array of all products
+ *
+ * @return All products
+ * @throws javax.servlet.ServletException If anything went wrong
+ */
+ public Iterator<Product> getAllProducts () throws ServletException;
+
+ /**
+ * Some "getter" for a an array of all categories
+ *
+ * @return All categories
+ * @throws javax.servlet.ServletException If anything went wrong
+ */
+ public Iterator<Category> getCategories () throws ServletException;
+
+ /**
+ * Checks if given Product instance is available and returns a printable
+ * (human-readable) string.
+ *
+ * @param product Product instance to check
+ * @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;