]> git.mxchange.org Git - pizzaservice-war.git/commitdiff
Renamed service stuff to application, as it is really an application
authorRoland Haeder <roland@mxchange.org>
Thu, 6 Aug 2015 09:48:34 +0000 (11:48 +0200)
committerRoland Haeder <roland@mxchange.org>
Thu, 6 Aug 2015 09:48:34 +0000 (11:48 +0200)
Signed-off-by:Roland Häder <roland@mxchange.org>

src/java/org/mxchange/pizzaservice/application/PizzaApplication.java [new file with mode: 0644]
src/java/org/mxchange/pizzaservice/application/PizzaServiceApplication.java [new file with mode: 0644]
src/java/org/mxchange/pizzaservice/service/PizzaService.java [deleted file]
src/java/org/mxchange/pizzaservice/service/Service.java [deleted file]
web/WEB-INF/glassfish-web.xml
web/bye.jsp
web/errorHandler.jsp
web/finished.jsp
web/index.jsp
web/order.jsp

diff --git a/src/java/org/mxchange/pizzaservice/application/PizzaApplication.java b/src/java/org/mxchange/pizzaservice/application/PizzaApplication.java
new file mode 100644 (file)
index 0000000..d386798
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.pizzaservice.application;
+
+import java.util.Iterator;
+import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import org.mxchange.jcore.application.Application;
+import org.mxchange.pizzaservice.product.Product;
+
+/**
+ *
+ * @author Roland Haeder
+ */
+public interface PizzaApplication extends Application {
+       /**
+        * HTTP parameter "amount"
+        */
+       public static final String HTTP_PARAM_AMOUNT = "amount";
+
+       /**
+        * HTTP parameter "choose"
+        */
+       public static final String HTTP_PARAM_CHOOSE = "choose";
+
+       /**
+        * Session key "ordered"
+        */
+       public static final String SESSION_ORDERED = "ordered";
+
+       /**
+        * Mask for all parameters
+        */
+       public static final String HTTP_PARAM_MASK = "%s[%s]";
+
+       /**
+        * Getter for product iterator
+        * 
+        * @return Iterator for all products
+        */
+       public Iterator<Map.Entry<String, Product>> getProductsIterator ();
+
+       /**
+        * Some "getter" for amount from session
+        *
+        * @param product Product instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       public String getAmountFromSession (final Product product, final HttpSession session);
+
+       /**
+        * Some "getter" for choose from session
+        *
+        * @param product Product instance
+        * @param session Session instance
+        * @return Choose as string
+        */
+       public String getChooseFromSession (final Product product, final HttpSession session);
+
+       /**
+        * Handler for amount from session
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       public String handleAmountFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Handler for choosen (checkbox) from request or session
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       public String handleChooseFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Some "getter" for printable choosen (checkbox) from request or session
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       public String getPrintableChoosenFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Some "getter" for total price of position from request or session.
+        * Single price and amount is multiplyed.
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       public float getTotalPositionPriceFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Checks whether the given product is choosen, request overules session.
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Whether the product is choosen
+        */
+       public boolean isProductChoosen (final Product product, final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Calculates total price of all choosen products
+        *
+        * @param request Request instance
+        * @param session Session instance
+        * @return Total price of all choosen products
+        */
+       public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Calculates total amount of all choosen products
+        *
+        * @param request Request instance
+        * @param session Session instance
+        * @return Total amount of all choosen products
+        */
+       public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Some "getter" for HTML code 'checked="checked"' if the product is choosen
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Whether the product is choosen
+        */
+       public String getCheckedHtmlFromProduct (final Product product, final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Some "getter" for HTML code 'disabled="disabled"' for e.g. submit buttons
+        *
+        * @param request Request instance
+        * @param session Session instance
+        * @return Whether the product is choosen
+        */
+       public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session);
+
+       /**
+        * Marks given product as ordered in session
+        *
+        * @param product Product to mark as ordered
+        * @param session Session instance
+        */
+       public void markProductAsOrdered(final Product product, final HttpSession session);
+
+       /**
+        * Unmarks given product as ordered in session
+        *
+        * @param product Product to unmark as ordered
+        * @param session Session instance
+        */
+       public void unmarkProductAsOrdered(final Product product, final HttpSession session);
+}
diff --git a/src/java/org/mxchange/pizzaservice/application/PizzaServiceApplication.java b/src/java/org/mxchange/pizzaservice/application/PizzaServiceApplication.java
new file mode 100644 (file)
index 0000000..31ce724
--- /dev/null
@@ -0,0 +1,936 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.pizzaservice.application;
+
+import java.text.MessageFormat;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import org.mxchange.jcore.BaseFrameworkSystem;
+import org.mxchange.pizzaservice.product.PizzaProduct;
+import org.mxchange.pizzaservice.product.Product;
+
+/**
+ *
+ * @author Roland Haeder
+ */
+public class PizzaServiceApplication extends BaseFrameworkSystem implements PizzaApplication {
+       /**
+        * Main title
+        */
+       public static final String MAIN_TITLE = "Pizza-Service";
+
+       /**
+        * Product list
+        */
+       private final SortedMap<String, Product> products;
+
+       /**
+        * Some singleton getter for this instance. If the instance is not set in
+        * given application, it will be created.
+        *
+        * @param application Servlet context
+        * @return This instance
+        * @throws javax.servlet.ServletException If object is not set correctly
+        */
+       public static final PizzaApplication getInstance (final ServletContext application) throws ServletException {
+               // Trace message
+               new PizzaServiceApplication().getLogger().trace(MessageFormat.format("application={0} - CALLED!", application)); //NOI18N
+
+               if (application == null) {
+                       // Not set
+                       throw new NullPointerException("application is null"); //NOI18N
+               }
+
+                       // Init instance
+               PizzaServiceApplication instance = null;
+
+               // Get instance from servlet
+               Object object = application.getAttribute("service"); //NOI18N
+
+               // Is it set?
+               if (object instanceof PizzaServiceApplication) {
+                       // Instance is set, so casting should work
+                       instance = (PizzaServiceApplication) object;
+               } else if (object instanceof Object) {
+                       // Not correct instance
+                       throw new ServletException("service is not set correctly"); //NOI18N
+               } else {
+                       // "service" is null, so initialize it
+                       instance = new PizzaServiceApplication();
+
+                       // And set it here
+                       application.setAttribute("service", instance); //NOI18N
+               }
+
+               // Trace message
+               instance.getLogger().trace(MessageFormat.format("instance={0} - EXIT!", instance)); //NOI18N
+
+               // Return it
+               return instance;
+       }
+
+       /**
+        * Private constructor
+        */
+       private PizzaServiceApplication () {
+               // Init products instance
+               this.products = new TreeMap<>();
+
+               // Fill products list
+               this.fillProductsList();
+       }
+
+       @Override
+       public void doBootstrap () {
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       }
+
+       @Override
+       public void doMainLoop () {
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       }
+
+       @Override
+       public void doShutdown () {
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       }
+
+       /**
+        * Getter for product (list) iterator
+        *
+        * @return An interator on all listed products
+        */
+       @Override
+       public Iterator<Map.Entry<String, Product>> getProductsIterator () {
+               assert(this.products instanceof SortedMap) : "this.products is not initialized"; //NOI18N
+               return this.products.entrySet().iterator();
+       }
+
+       /**
+        * Adds given product to list or throws an exception if name is already found
+        *
+        * @param name Internal name of product
+        * @param title Product's title
+        * @param price Price
+        */
+       private void addProduct (final String name, final String title, final float price) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("name={0},title={1},price={2} - CALLED!", name, title, price)); //NOI18N
+
+               // Is the name already used?
+               if (this.isProductNameUsed(name)) {
+                       // Something went wrong
+                       throw new IllegalArgumentException(MessageFormat.format("product {0} is already used.", name)); //NOI18N
+               }
+
+               // Instance product
+               Product product = new PizzaProduct(name, title, price);
+
+               // Debug message
+               this.getLogger().debug(MessageFormat.format("Adding product={0} ...", product)); //NOI18N
+
+               // Add it
+               this.products.put(product.getName(), product);
+
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+
+       /**
+        * Clears given parameter for product in session
+        * 
+        * @param product Product instance
+        * @param session Session instance
+        * @param parameter Parameter to clear
+        */
+       private void clearSessionAttribute (final Product product, final HttpSession session, final String parameter) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("produce={0},parameter={1},session={2} - CALLED!", product, parameter, session)); //NOI18N
+
+               // Clear in session
+               this.getLogger().debug(MessageFormat.format("Clearing product={0},parameter={1} ...", product.getName(), parameter)); //NOI18N
+               this.setValueInSession(product, session, parameter, null);
+
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+
+       /**
+        * Fills products list
+        * @todo Very hard-coded stuff ...
+        */
+       private void fillProductsList () {
+               // Trace message
+               this.getLogger().trace("CALLED!"); //NOI18N
+
+               // Add products
+               this.addProduct("italia", "Pizza Italia", 5.50f); //NOI18N
+               this.addProduct("diablo", "Pizza Diablo", 7.80f); //NOI18N
+               this.addProduct("bolognese", "Spagetti Bolognese", 11.95f); //NOI18N
+
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+
+       /**
+        * Some getter for value from session
+        *
+        * @param product Product instance
+        * @param session Session instance
+        * @param attribute Attribute to get value from
+        * @return Value from session
+        */
+       private Object getValueFromSession (final Product product, final HttpSession session, final String attribute) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1},attribute={2} - CALLED!", product, session, attribute)); //NOI18N
+
+               // Init variable
+               Object value = null;
+
+               // Get it synced
+               synchronized (session) {
+                       value = session.getAttribute(String.format(HTTP_PARAM_MASK, product.getName(), attribute));
+               }
+
+               this.getLogger().debug(MessageFormat.format("product={0},attribute={1},value={2}", product.getName(), attribute, value)); //NOI18N
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("value={0} - EXIT!", value)); //NOI18N
+
+               // Return it
+               return value;
+       }
+
+       /**
+        * Checks whether given product is already used
+        *
+        * @param name Name of product
+        * @return Whether the given product's name is already used
+        */
+       private boolean isProductNameUsed (final String name) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("name={0} - CALLED!", name)); //NOI18N
+
+               // Is it found?
+               return this.products.containsKey(name);
+       }
+
+       /**
+        * For debugging purpose
+        *
+        * @param args Arguments
+        */
+       public static void main (String[] args) {
+               // Get instance and start it
+               new PizzaServiceApplication().start();
+       }
+
+       /**
+        * Checks if the product ordered?
+        *
+        * @param product 
+        * @param session
+        * @return 
+        */
+       private boolean isProductOrdered (final Product product, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
+
+               // Get session
+               Object isOrdered = this.getValueFromSession(product, session, SESSION_ORDERED);
+               this.getLogger().debug(MessageFormat.format("product={0},isOrdered={1}", product.getName(), isOrdered)); //NOI18N
+
+               // Return result
+               return ("true".equals(isOrdered)); //NOI18N
+       }
+
+       /**
+        * Somewhat setter in session
+        *
+        * @param product Product instance
+        * @param session Session instance
+        * @param keyPart Key part to include in final key
+        * @param value Value to set
+        */
+       private void setValueInSession (final Product product, final HttpSession session, final String keyPart, final Object value) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1},keyPart={2},value={3} - CALLED!", product, session, keyPart, value)); //NOI18N
+
+               synchronized(session) {
+                       // Set it synced
+                       this.getLogger().debug(MessageFormat.format("setValueInSession: Setting value={0} for product={1},keyPart={2}", value, product.getName(), keyPart)); //NOI18N
+                       session.setAttribute(String.format(HTTP_PARAM_MASK, product.getName(), keyPart), value);
+               }
+
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+
+       /**
+        * Application starter
+        */
+       private void start () {
+               // Get iterator
+               Iterator<Map.Entry<String, Product>> iterator = this.getProductsIterator();
+
+               // Run over it
+               while (iterator.hasNext()) {
+                       // Get product instance
+                       Map.Entry<String, Product> entry = iterator.next();
+
+                       // Get value
+                       Product product = entry.getValue();
+
+                       // Output data
+                       this.getLogger().debug(MessageFormat.format("Product {0}, {1}: {2}", product.getName(), product.getTitle(), product.getPrice())); //NOI18N
+               }
+       }
+
+       /**
+        * Some "getter" for amount from session
+        * @param product Product instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       @Override
+       public String getAmountFromSession (final Product product, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Get attribute
+               Object object = this.getValueFromSession(product, session, HTTP_PARAM_AMOUNT);
+
+               // Is the object null?
+               if (object == null) {
+                       // Trace message
+                       this.getLogger().trace("Returning 0 - EXIT!"); //NOI18N
+
+                       // Not found
+                       return "0"; //NOI18N
+               }
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("object={0} - EXIT!", object)); //NOI18N
+
+               // Cast to string and return it
+               return (String) object;
+       }
+
+       /**
+        * Some "getter" for choose from session
+        * 
+        * @param product Product instance
+        * @param session Session instance
+        * @return Choose as string
+        */
+       @Override
+       public String getChooseFromSession (final Product product, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
+
+                       // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Get attribute
+               Object object = this.getValueFromSession(product, session, HTTP_PARAM_CHOOSE);
+
+               // Is the object null?
+               if (object == null) {
+                       // Not found
+                       this.getLogger().debug(MessageFormat.format("Returning empty string for product={0} ...", product.getName())); //NOI18N
+                       return ""; //NOI18N
+               }
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("object={0} - CALLED!", object)); //NOI18N
+
+               // Cast to string and return it
+               return (String) object;
+       }
+
+       /**
+        * Handler for amount from request or session
+        * 
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       @Override
+       public String handleAmountFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Init variabke
+               Object object;
+
+               // Check request method
+               if (!"POST".equals(request.getMethod())) { //NOI18N
+                       // Not POST, so get from session
+                       return this.getAmountFromSession(product, session);
+               } else if (this.handleChooseFromRequestSession(product, request, session).isEmpty()) {
+                       // Not choosen
+                       this.clearSessionAttribute(product, session, HTTP_PARAM_AMOUNT);
+                       this.getLogger().debug(MessageFormat.format("Unsetting for product={0} in session, returning zero ...", product.getName())); //NOI18N
+                       return "0"; //NOI18N
+               }
+
+               // Get attribute from request
+               object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_AMOUNT, product.getName()));
+
+               // Is it set?
+               if (object instanceof String) {
+                       // Try to parse it to integer
+                       try {
+                               Integer value = Integer.valueOf((String) object);
+                       } catch (final NumberFormatException ex) {
+                               // Not valid input
+                               this.getLogger().warn(ex);
+                               return "0"; //NOI18N
+                       }
+
+                       // Then set it in session
+                       this.setValueInSession(product, session, HTTP_PARAM_AMOUNT, object);
+
+                       // And return it
+                       return (String) object;
+               }
+
+               // Trace message
+               this.getLogger().trace("Calling getAmountFromSession() ..."); //NOI18N
+
+               // Get attribute from session
+               return this.getAmountFromSession(product, session);
+       }
+
+       /**
+        * Handler for choosen (checkbox) from request or session
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       @Override
+       public String handleChooseFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Init variabke
+               Object object;
+
+               // Check request method
+               if (!"POST".equals(request.getMethod())) { //NOI18N
+                       // Not POST, so get from session
+                       return this.getChooseFromSession(product, session);
+               } else if (this.isProductOrdered(product, session)) {
+                       // Product is ordered
+                       return this.getChooseFromSession(product, session);
+               }
+
+               // Get reqzest element
+               object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_CHOOSE, product.getName()));
+               this.getLogger().debug(MessageFormat.format("product={0},object={1}", product.getName(), object)); //NOI18N
+
+               // Is it null?
+               if (object == null) {
+                       // Unset session
+                       this.getLogger().debug(MessageFormat.format("Unsetting session for product={0} ...", product.getName())); //NOI18N
+                       this.clearSessionAttribute(product, session, HTTP_PARAM_CHOOSE);
+                       this.clearSessionAttribute(product, session, HTTP_PARAM_AMOUNT);
+
+                       // Return empty string
+                       return ""; //NOI18N
+               }
+
+               // Then set it in session
+               this.setValueInSession(product, session, HTTP_PARAM_CHOOSE, object);
+
+               // Cast to string and return it
+               this.getLogger().debug(MessageFormat.format("product={0} - Returning {1} ...", product.getName(), object)); //NOI18N
+               return (String) object;
+       }
+
+       /**
+        * Some "getter" for choosen (checkbox) from session
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       @Override
+       public String getPrintableChoosenFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Get element
+               String choosen = this.handleChooseFromRequestSession(product, request, session);
+               this.getLogger().debug(MessageFormat.format("product={0},choosen={1}", product.getName(), choosen)); //NOI18N
+
+               // Must not be null
+               assert(choosen instanceof String): "choosen is null"; //NOI18N
+
+               // Is it empty?
+               if (choosen.isEmpty()) {
+                       // Not choosen
+                       return "Nein";
+               }
+
+               // Get amount
+               String amount = this.handleAmountFromRequestSession(product, request, session);
+               this.getLogger().debug(MessageFormat.format("product={0},amount={1}", product.getName(), amount)); //NOI18N
+
+               // Must not be null
+               assert(amount instanceof String): "amount is null"; //NOI18N
+
+               // Is it empty?
+               if (amount.isEmpty() || "0".equals(amount)) { //NOI18N
+                       // Choosen, but no amount
+                       return "Nein";
+               } else {
+                       // Is choosen
+                       return "Ja";
+               }
+       }
+
+       /**
+        * Some "getter" for total price of position from request or session.
+        * Single price and amount is multiplyed.
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Amount as string
+        */
+       @Override
+       public float getTotalPositionPriceFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Get choosen
+               String choosen = this.handleChooseFromRequestSession(product, request, session);
+               this.getLogger().debug(MessageFormat.format("product={0},choosen={1}", product.getName(), choosen)); //NOI18N
+
+               // Must not be null
+               assert(choosen instanceof String): "choosen is null"; //NOI18N
+
+               // Is it set?
+               if (choosen.isEmpty()) {
+                       // Is empty
+                       this.getLogger().debug(MessageFormat.format("product={0},choosen={1} - returning zero ...", product.getName(), choosen)); //NOI18N
+                       return 0.00f;
+               }
+
+               // Get amount
+               String amount = this.handleAmountFromRequestSession(product, request, session);
+               this.getLogger().debug(MessageFormat.format("product={0},amount={1}", product.getName(), amount)); //NOI18N
+
+               // Must not be null
+               assert(amount instanceof String): "amount is null"; //NOI18N
+
+               // Is it empty?
+               if (amount.isEmpty() || "0".equals(amount)) { //NOI18N
+                       // Is empty
+                       this.getLogger().debug(MessageFormat.format("product={0},amount={1} - returning zero ...", product.getName(), amount)); //NOI18N
+                       return 0.00f;
+               }
+
+               // Init variable
+               Integer value = null;
+
+               // Try it
+               try {
+                       // Get amount as integer
+                       value = Integer.valueOf(amount);
+               } catch (final NumberFormatException e) {
+                       // Bat input
+                       throw new IllegalArgumentException(e);
+               }
+
+               // Calculate price
+               float price = (product.getPrice() * value);
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},price={1} - EXIT!", product.getName(), price)); //NOI18N
+
+               // Then multiply it with price
+               return price;
+       }
+
+       /**
+        * Checks whether the given product is choosen, request overules session.
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Whether the product is choosen
+        */
+       @Override
+       public boolean isProductChoosen (final Product product, final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Get choosen
+               String choosen = this.handleChooseFromRequestSession(product, request, session);
+               this.getLogger().debug(MessageFormat.format("product={0},choosen={1}", product.getName(), choosen)); //NOI18N
+
+               // Must not be null
+               assert(choosen instanceof String): "choosen is null"; //NOI18N
+
+               // Is it not choosen?
+               if (choosen.isEmpty()) {
+                       // Not choosen
+                       return false;
+               }
+
+               // Get amount
+               String amount = this.handleAmountFromRequestSession(product, request, session);
+
+               // Must not be null
+               assert(amount instanceof String): "amount is not set"; //NOI18N
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("amount={0} - EXIT!", amount)); //NOI18N
+
+               // Must not be empty and not 0
+               return (!amount.isEmpty() && !"0".equals(amount)); //NOI18N
+       }
+
+       /**
+        * Calculates total price of all choosen products
+        *
+        * @param request Request instance
+        * @param session Session instance
+        * @return Total price of all choosen products
+        */
+       @Override
+       public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("request={0},session={1} - CALLED!", request, session)); //NOI18N
+
+               // Is product and session set?
+               if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Init total price
+               float totalPrice = 0.00f;
+
+               // Get iterator
+               Iterator<Map.Entry<String, Product>> iterator = this.getProductsIterator();
+
+               // Walk through all products
+               while (iterator.hasNext()) {
+                       // Get entry
+                       Map.Entry<String, Product> entry = iterator.next();
+
+                       // Get product instance
+                       Product product = entry.getValue();
+
+                       // Is this choosen?
+                       if (product.isChoosen()) {
+                               // Then add product's total price
+                               this.getLogger().debug(MessageFormat.format("Calling getTotalPositionPriceFromRequestSession({0},request,session) ...", product.getName())); //NOI18N
+                               totalPrice += this.getTotalPositionPriceFromRequestSession(product, request, session);
+                       }
+                       this.getLogger().debug(MessageFormat.format("product={0},totalPrice={1}", product.getName(), totalPrice)); //NOI18N
+               }
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format(" totalPrice={0} - EXIT!", totalPrice)); //NOI18N
+
+               // Return total price
+               return totalPrice;
+       }
+
+       /**
+        * Calculates total amount of all choosen products
+        *
+        * @param request Request instance
+        * @param session Session instance
+        * @return Total amount of all choosen products
+        */
+       @Override
+       public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("request={0},session={1} - CALLED!", request, session)); //NOI18N
+
+               // Is product and session set?
+               if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Init total price
+               int totalAmount = 0;
+
+               // Get iterator
+               Iterator<Map.Entry<String, Product>> iterator = this.getProductsIterator();
+
+               // Walk through all products
+               while (iterator.hasNext()) {
+                       // Get entry
+                       Map.Entry<String, Product> entry = iterator.next();
+
+                       // Get product instance
+                       Product product = entry.getValue();
+
+                       // Is this choosen?
+                       if (product.isChoosen()) {
+                               // Then add ordered amount
+                               this.getLogger().debug(MessageFormat.format("Counting {0} ...", product.getName())); //NOI18N
+
+                               // Getting amount
+                               String amount = this.getAmountFromSession(product, session);
+
+                               // Add it up
+                               this.getLogger().debug(MessageFormat.format("amount={0}", amount)); //NOI18N
+                               totalAmount += Integer.valueOf(amount);
+                       }
+                       this.getLogger().debug(MessageFormat.format("product={0},totalAmount={1}", product.getName(), totalAmount)); //NOI18N
+               }
+
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("totalAmount={0} - EXIT!", totalAmount)); //NOI18N
+
+               // Return total price
+               return totalAmount;
+       }
+
+       /**
+        * Some "getter" for HTML code 'checked="checked"' if the product is choosen
+        *
+        * @param product Product instance
+        * @param request Request instance
+        * @param session Session instance
+        * @return Whether the product is choosen
+        */
+       @Override
+       public String getCheckedHtmlFromProduct (final Product product, final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // First let's check if the product is choosen
+               if (this.isProductChoosen(product, request, session)) {
+                       // Trace message
+                       this.getLogger().trace("Returning checked=\"checked\" - EXIT!"); //NOI18N
+
+                       // Is choosen
+                       return "checked=\"checked\""; //NOI18N
+               } else {
+                       // Trace message
+                       this.getLogger().trace("Returning empty string - EXIT!"); //NOI18N
+
+                       // Not choosen
+                       return ""; //NOI18N
+               }
+       }
+
+       /**
+        * Some "getter" for HTML code 'disabled="disabled"' for e.g. submit buttons
+        *
+        * @param request Request instance
+        * @param session Session instance
+        * @return Whether the product is choosen
+        */
+       @Override
+       public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("request={0},session={1} - CALLED!", request, session)); //NOI18N
+
+               // Is product and session set?
+               if (request == null) {
+                       // Not set
+                       throw new NullPointerException("request is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Is something selected?
+               if (this.calculateTotalAmount(request, session) > 0) {
+                       // Trace message
+                       this.getLogger().trace("Returning empty string - EXIT!"); //NOI18N
+
+                       // Something has been choosen
+                       return ""; //NOI18N
+               } else {
+                       // Trace message
+                       this.getLogger().trace("Returning disabled=\"disabled\" - EXIT!"); //NOI18N
+
+                       // Nothing choosen yet
+                       return "disabled=\"disabled\""; //NOI18N
+               }
+       }
+
+       /**
+        * Marks given product as ordered in session
+        *
+        * @param product Product to mark as ordered
+        * @param session Session instance
+        */
+       @Override
+       public void markProductAsOrdered(final Product product, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Mark it as ordered by setting flag
+               this.getLogger().debug(MessageFormat.format("Marking product={0} as ordered.", product.getName())); //NOI18N
+               this.setValueInSession(product, session, SESSION_ORDERED, "true"); //NOI18N
+
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+
+       /**
+        * Unmarks given product as ordered in session
+        *
+        * @param product Product to unmark as ordered
+        * @param session Session instance
+        */
+       @Override
+       public void unmarkProductAsOrdered(final Product product, final HttpSession session) {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
+
+               // Is product and session set?
+               if (product == null) {
+                       // Not set
+                       throw new NullPointerException("product is null"); //NOI18N
+               } else if (session == null) {
+                       // Not set
+                       throw new NullPointerException("session is null"); //NOI18N
+               }
+
+               // Mark it as ordered by setting flag
+               this.getLogger().debug(MessageFormat.format("Unmarking product={0} as ordered.", product.getName())); //NOI18N
+               this.clearSessionAttribute(product, session, SESSION_ORDERED);
+
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+}
diff --git a/src/java/org/mxchange/pizzaservice/service/PizzaService.java b/src/java/org/mxchange/pizzaservice/service/PizzaService.java
deleted file mode 100644 (file)
index e51da41..0000000
+++ /dev/null
@@ -1,921 +0,0 @@
-/*
- * Copyright (C) 2015 Roland Haeder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.pizzaservice.service;
-
-import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import org.mxchange.jcore.BaseFrameworkSystem;
-import org.mxchange.pizzaservice.product.PizzaProduct;
-import org.mxchange.pizzaservice.product.Product;
-
-/**
- *
- * @author Roland Haeder
- */
-public class PizzaService extends BaseFrameworkSystem implements Service {
-       /**
-        * Main title
-        */
-       public static final String MAIN_TITLE = "Pizza-Service";
-
-       /**
-        * Product list
-        */
-       private final SortedMap<String, Product> products;
-
-       /**
-        * Some singleton getter for this instance. If the instance is not set in
-        * given application, it will be created.
-        *
-        * @param application Servlet context
-        * @return This instance
-        * @throws javax.servlet.ServletException If object is not set correctly
-        */
-       public static final Service getInstance (final ServletContext application) throws ServletException {
-               // Trace message
-               new PizzaService().getLogger().trace(MessageFormat.format("application={0} - CALLED!", application)); //NOI18N
-
-               if (application == null) {
-                       // Not set
-                       throw new NullPointerException("application is null"); //NOI18N
-               }
-
-                       // Init instance
-               PizzaService instance = null;
-
-               // Get instance from servlet
-               Object object = application.getAttribute("service"); //NOI18N
-
-               // Is it set?
-               if (object instanceof PizzaService) {
-                       // Instance is set, so casting should work
-                       instance = (PizzaService) object;
-               } else if (object instanceof Object) {
-                       // Not correct instance
-                       throw new ServletException("service is not set correctly"); //NOI18N
-               } else {
-                       // "service" is null, so initialize it
-                       instance = new PizzaService();
-
-                       // And set it here
-                       application.setAttribute("service", instance); //NOI18N
-               }
-
-               // Trace message
-               instance.getLogger().trace(MessageFormat.format("instance={0} - EXIT!", instance)); //NOI18N
-
-               // Return it
-               return instance;
-       }
-
-       /**
-        * Private constructor
-        */
-       private PizzaService () {
-               // Init products instance
-               this.products = new TreeMap<>();
-
-               // Fill products list
-               this.fillProductsList();
-       }
-
-       /**
-        * Getter for product (list) iterator
-        *
-        * @return An interator on all listed products
-        */
-       @Override
-       public Iterator<Map.Entry<String, Product>> getProductsIterator () {
-               assert(this.products instanceof SortedMap) : "this.products is not initialized"; //NOI18N
-               return this.products.entrySet().iterator();
-       }
-
-       /**
-        * Adds given product to list or throws an exception if name is already found
-        *
-        * @param name Internal name of product
-        * @param title Product's title
-        * @param price Price
-        */
-       private void addProduct (final String name, final String title, final float price) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("name={0},title={1},price={2} - CALLED!", name, title, price)); //NOI18N
-
-               // Is the name already used?
-               if (this.isProductNameUsed(name)) {
-                       // Something went wrong
-                       throw new IllegalArgumentException(MessageFormat.format("product {0} is already used.", name)); //NOI18N
-               }
-
-               // Instance product
-               Product product = new PizzaProduct(name, title, price);
-
-               // Debug message
-               this.getLogger().debug(MessageFormat.format("Adding product={0} ...", product)); //NOI18N
-
-               // Add it
-               this.products.put(product.getName(), product);
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-
-       /**
-        * Clears given parameter for product in session
-        * 
-        * @param product Product instance
-        * @param session Session instance
-        * @param parameter Parameter to clear
-        */
-       private void clearSessionAttribute (final Product product, final HttpSession session, final String parameter) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("produce={0},parameter={1},session={2}", product, parameter, session)); //NOI18N
-
-               // Clear in session
-               this.getLogger().debug(MessageFormat.format("Clearing product={0},parameter={1} ...", product.getName(), parameter)); //NOI18N
-               this.setValueInSession(product, session, parameter, null);
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-
-       /**
-        * Fills products list
-        * @todo Very hard-coded stuff ...
-        */
-       private void fillProductsList () {
-               // Trace message
-               this.getLogger().trace("CALLED!"); //NOI18N
-
-               // Add products
-               this.addProduct("italia", "Pizza Italia", 5.50f); //NOI18N
-               this.addProduct("diablo", "Pizza Diablo", 7.80f); //NOI18N
-               this.addProduct("bolognese", "Spagetti Bolognese", 11.95f); //NOI18N
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-
-       /**
-        * Some getter for value from session
-        *
-        * @param product Product instance
-        * @param session Session instance
-        * @param attribute Attribute to get value from
-        * @return Value from session
-        */
-       private Object getValueFromSession (final Product product, final HttpSession session, final String attribute) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1},attribute={2} - CALLED!", product, session, attribute)); //NOI18N
-
-               // Init variable
-               Object value = null;
-
-               // Get it synced
-               synchronized (session) {
-                       value = session.getAttribute(String.format(HTTP_PARAM_MASK, product.getName(), attribute));
-               }
-
-               this.getLogger().debug(MessageFormat.format("product={0},attribute={1},value={2}", product.getName(), attribute, value)); //NOI18N
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("value={0} - EXIT!", value)); //NOI18N
-
-               // Return it
-               return value;
-       }
-
-       /**
-        * Checks whether given product is already used
-        *
-        * @param name Name of product
-        * @return Whether the given product's name is already used
-        */
-       private boolean isProductNameUsed (final String name) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("name={0} - CALLED!", name)); //NOI18N
-
-               // Is it found?
-               return this.products.containsKey(name);
-       }
-
-       /**
-        * For debugging purpose
-        *
-        * @param args Arguments
-        */
-       public static void main (String[] args) {
-               // Get instance and start it
-               new PizzaService().start();
-       }
-
-       /**
-        * Checks if the product ordered?
-        *
-        * @param product 
-        * @param session
-        * @return 
-        */
-       private boolean isProductOrdered (final Product product, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
-
-               // Get session
-               Object isOrdered = this.getValueFromSession(product, session, SESSION_ORDERED);
-               this.getLogger().debug(MessageFormat.format("product={0},isOrdered={1}", product.getName(), isOrdered)); //NOI18N
-
-               // Return result
-               return ("true".equals(isOrdered)); //NOI18N
-       }
-
-       /**
-        * Somewhat setter in session
-        *
-        * @param product Product instance
-        * @param session Session instance
-        * @param keyPart Key part to include in final key
-        * @param value Value to set
-        */
-       private void setValueInSession (final Product product, final HttpSession session, final String keyPart, final Object value) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1},keyPart={2},value={3} - CALLED!", product, session, keyPart, value)); //NOI18N
-
-               synchronized(session) {
-                       // Set it synced
-                       this.getLogger().debug(MessageFormat.format("setValueInSession: Setting value={0} for product={1},keyPart={2}", value, product.getName(), keyPart)); //NOI18N
-                       session.setAttribute(String.format(HTTP_PARAM_MASK, product.getName(), keyPart), value);
-               }
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-
-       /**
-        * Application starter
-        */
-       private void start () {
-               // Get iterator
-               Iterator<Map.Entry<String, Product>> iterator = this.getProductsIterator();
-
-               // Run over it
-               while (iterator.hasNext()) {
-                       // Get product instance
-                       Map.Entry<String, Product> entry = iterator.next();
-
-                       // Get value
-                       Product product = entry.getValue();
-
-                       // Output data
-                       this.getLogger().debug(MessageFormat.format("Product {0}, {1}: {2}", product.getName(), product.getTitle(), product.getPrice())); //NOI18N
-               }
-       }
-
-       /**
-        * Some "getter" for amount from session
-        * @param product Product instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       @Override
-       public String getAmountFromSession (final Product product, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Get attribute
-               Object object = this.getValueFromSession(product, session, HTTP_PARAM_AMOUNT);
-
-               // Is the object null?
-               if (object == null) {
-                       // Trace message
-                       this.getLogger().trace("Returning 0 - EXIT!"); //NOI18N
-
-                       // Not found
-                       return "0"; //NOI18N
-               }
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("object={0} - EXIT!", object)); //NOI18N
-
-               // Cast to string and return it
-               return (String) object;
-       }
-
-       /**
-        * Some "getter" for choose from session
-        * 
-        * @param product Product instance
-        * @param session Session instance
-        * @return Choose as string
-        */
-       @Override
-       public String getChooseFromSession (final Product product, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
-
-                       // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Get attribute
-               Object object = this.getValueFromSession(product, session, HTTP_PARAM_CHOOSE);
-
-               // Is the object null?
-               if (object == null) {
-                       // Not found
-                       this.getLogger().debug(MessageFormat.format("Returning empty string for product={0} ...", product.getName())); //NOI18N
-                       return ""; //NOI18N
-               }
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("object={0} - CALLED!", object)); //NOI18N
-
-               // Cast to string and return it
-               return (String) object;
-       }
-
-       /**
-        * Handler for amount from request or session
-        * 
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       @Override
-       public String handleAmountFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Init variabke
-               Object object;
-
-               // Check request method
-               if (!"POST".equals(request.getMethod())) { //NOI18N
-                       // Not POST, so get from session
-                       return this.getAmountFromSession(product, session);
-               } else if (this.handleChooseFromRequestSession(product, request, session).isEmpty()) {
-                       // Not choosen
-                       this.clearSessionAttribute(product, session, HTTP_PARAM_AMOUNT);
-                       this.getLogger().debug(MessageFormat.format("Unsetting for product={0} in session, returning zero ...", product.getName())); //NOI18N
-                       return "0"; //NOI18N
-               }
-
-               // Get attribute from request
-               object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_AMOUNT, product.getName()));
-
-               // Is it set?
-               if (object instanceof String) {
-                       // Try to parse it to integer
-                       try {
-                               Integer value = Integer.valueOf((String) object);
-                       } catch (final NumberFormatException ex) {
-                               // Not valid input
-                               this.getLogger().warn(ex);
-                               return "0"; //NOI18N
-                       }
-
-                       // Then set it in session
-                       this.setValueInSession(product, session, HTTP_PARAM_AMOUNT, object);
-
-                       // And return it
-                       return (String) object;
-               }
-
-               // Trace message
-               this.getLogger().trace("Calling getAmountFromSession() ..."); //NOI18N
-
-               // Get attribute from session
-               return this.getAmountFromSession(product, session);
-       }
-
-       /**
-        * Handler for choosen (checkbox) from request or session
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       @Override
-       public String handleChooseFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Init variabke
-               Object object;
-
-               // Check request method
-               if (!"POST".equals(request.getMethod())) { //NOI18N
-                       // Not POST, so get from session
-                       return this.getChooseFromSession(product, session);
-               } else if (this.isProductOrdered(product, session)) {
-                       // Product is ordered
-                       return this.getChooseFromSession(product, session);
-               }
-
-               // Get reqzest element
-               object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_CHOOSE, product.getName()));
-               this.getLogger().debug(MessageFormat.format("product={0},object={1}", product.getName(), object)); //NOI18N
-
-               // Is it null?
-               if (object == null) {
-                       // Unset session
-                       this.getLogger().debug(MessageFormat.format("Unsetting session for product={0} ...", product.getName())); //NOI18N
-                       this.clearSessionAttribute(product, session, HTTP_PARAM_CHOOSE);
-                       this.clearSessionAttribute(product, session, HTTP_PARAM_AMOUNT);
-
-                       // Return empty string
-                       return ""; //NOI18N
-               }
-
-               // Then set it in session
-               this.setValueInSession(product, session, HTTP_PARAM_CHOOSE, object);
-
-               // Cast to string and return it
-               this.getLogger().debug(MessageFormat.format("product={0} - Returning {1} ...", product.getName(), object)); //NOI18N
-               return (String) object;
-       }
-
-       /**
-        * Some "getter" for choosen (checkbox) from session
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       @Override
-       public String getPrintableChoosenFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Get element
-               String choosen = this.handleChooseFromRequestSession(product, request, session);
-               this.getLogger().debug(MessageFormat.format("product={0},choosen={1}", product.getName(), choosen)); //NOI18N
-
-               // Must not be null
-               assert(choosen instanceof String): "choosen is null"; //NOI18N
-
-               // Is it empty?
-               if (choosen.isEmpty()) {
-                       // Not choosen
-                       return "Nein";
-               }
-
-               // Get amount
-               String amount = this.handleAmountFromRequestSession(product, request, session);
-               this.getLogger().debug(MessageFormat.format("product={0},amount={1}", product.getName(), amount)); //NOI18N
-
-               // Must not be null
-               assert(amount instanceof String): "amount is null"; //NOI18N
-
-               // Is it empty?
-               if (amount.isEmpty() || "0".equals(amount)) { //NOI18N
-                       // Choosen, but no amount
-                       return "Nein";
-               } else {
-                       // Is choosen
-                       return "Ja";
-               }
-       }
-
-       /**
-        * Some "getter" for total price of position from request or session.
-        * Single price and amount is multiplyed.
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       @Override
-       public float getTotalPositionPriceFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Get choosen
-               String choosen = this.handleChooseFromRequestSession(product, request, session);
-               this.getLogger().debug(MessageFormat.format("product={0},choosen={1}", product.getName(), choosen)); //NOI18N
-
-               // Must not be null
-               assert(choosen instanceof String): "choosen is null"; //NOI18N
-
-               // Is it set?
-               if (choosen.isEmpty()) {
-                       // Is empty
-                       this.getLogger().debug(MessageFormat.format("product={0},choosen={1} - returning zero ...", product.getName(), choosen)); //NOI18N
-                       return 0.00f;
-               }
-
-               // Get amount
-               String amount = this.handleAmountFromRequestSession(product, request, session);
-               this.getLogger().debug(MessageFormat.format("product={0},amount={1}", product.getName(), amount)); //NOI18N
-
-               // Must not be null
-               assert(amount instanceof String): "amount is null"; //NOI18N
-
-               // Is it empty?
-               if (amount.isEmpty() || "0".equals(amount)) { //NOI18N
-                       // Is empty
-                       this.getLogger().debug(MessageFormat.format("product={0},amount={1} - returning zero ...", product.getName(), amount)); //NOI18N
-                       return 0.00f;
-               }
-
-               // Init variable
-               Integer value = null;
-
-               // Try it
-               try {
-                       // Get amount as integer
-                       value = Integer.valueOf(amount);
-               } catch (final NumberFormatException e) {
-                       // Bat input
-                       throw new IllegalArgumentException(e);
-               }
-
-               // Calculate price
-               float price = (product.getPrice() * value);
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},price={1} - EXIT!", product.getName(), price)); //NOI18N
-
-               // Then multiply it with price
-               return price;
-       }
-
-       /**
-        * Checks whether the given product is choosen, request overules session.
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Whether the product is choosen
-        */
-       @Override
-       public boolean isProductChoosen (final Product product, final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Get choosen
-               String choosen = this.handleChooseFromRequestSession(product, request, session);
-               this.getLogger().debug(MessageFormat.format("product={0},choosen={1}", product.getName(), choosen)); //NOI18N
-
-               // Must not be null
-               assert(choosen instanceof String): "choosen is null"; //NOI18N
-
-               // Is it not choosen?
-               if (choosen.isEmpty()) {
-                       // Not choosen
-                       return false;
-               }
-
-               // Get amount
-               String amount = this.handleAmountFromRequestSession(product, request, session);
-
-               // Must not be null
-               assert(amount instanceof String): "amount is not set"; //NOI18N
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("amount={0} - EXIT!", amount)); //NOI18N
-
-               // Must not be empty and not 0
-               return (!amount.isEmpty() && !"0".equals(amount)); //NOI18N
-       }
-
-       /**
-        * Calculates total price of all choosen products
-        *
-        * @param request Request instance
-        * @param session Session instance
-        * @return Total price of all choosen products
-        */
-       @Override
-       public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("request={0},session={1} - CALLED!", request, session)); //NOI18N
-
-               // Is product and session set?
-               if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Init total price
-               float totalPrice = 0.00f;
-
-               // Get iterator
-               Iterator<Map.Entry<String, Product>> iterator = this.getProductsIterator();
-
-               // Walk through all products
-               while (iterator.hasNext()) {
-                       // Get entry
-                       Map.Entry<String, Product> entry = iterator.next();
-
-                       // Get product instance
-                       Product product = entry.getValue();
-
-                       // Is this choosen?
-                       if (product.isChoosen()) {
-                               // Then add product's total price
-                               this.getLogger().debug(MessageFormat.format("Calling getTotalPositionPriceFromRequestSession({0},request,session) ...", product.getName())); //NOI18N
-                               totalPrice += this.getTotalPositionPriceFromRequestSession(product, request, session);
-                       }
-                       this.getLogger().debug(MessageFormat.format("product={0},totalPrice={1}", product.getName(), totalPrice)); //NOI18N
-               }
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format(" totalPrice={0} - EXIT!", totalPrice)); //NOI18N
-
-               // Return total price
-               return totalPrice;
-       }
-
-       /**
-        * Calculates total amount of all choosen products
-        *
-        * @param request Request instance
-        * @param session Session instance
-        * @return Total amount of all choosen products
-        */
-       @Override
-       public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("request={0},session={1} - CALLED!", request, session)); //NOI18N
-
-               // Is product and session set?
-               if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Init total price
-               int totalAmount = 0;
-
-               // Get iterator
-               Iterator<Map.Entry<String, Product>> iterator = this.getProductsIterator();
-
-               // Walk through all products
-               while (iterator.hasNext()) {
-                       // Get entry
-                       Map.Entry<String, Product> entry = iterator.next();
-
-                       // Get product instance
-                       Product product = entry.getValue();
-
-                       // Is this choosen?
-                       if (product.isChoosen()) {
-                               // Then add ordered amount
-                               this.getLogger().debug(MessageFormat.format("Counting {0} ...", product.getName())); //NOI18N
-
-                               // Getting amount
-                               String amount = this.getAmountFromSession(product, session);
-
-                               // Add it up
-                               this.getLogger().debug(MessageFormat.format("amount={0}", amount)); //NOI18N
-                               totalAmount += Integer.valueOf(amount);
-                       }
-                       this.getLogger().debug(MessageFormat.format("product={0},totalAmount={1}", product.getName(), totalAmount)); //NOI18N
-               }
-
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("totalAmount={0} - EXIT!", totalAmount)); //NOI18N
-
-               // Return total price
-               return totalAmount;
-       }
-
-       /**
-        * Some "getter" for HTML code 'checked="checked"' if the product is choosen
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Whether the product is choosen
-        */
-       @Override
-       public String getCheckedHtmlFromProduct (final Product product, final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},request={1},session={2} - CALLED!", product, request, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // First let's check if the product is choosen
-               if (this.isProductChoosen(product, request, session)) {
-                       // Trace message
-                       this.getLogger().trace("Returning checked=\"checked\" - EXIT!"); //NOI18N
-
-                       // Is choosen
-                       return "checked=\"checked\""; //NOI18N
-               } else {
-                       // Trace message
-                       this.getLogger().trace("Returning empty string - EXIT!"); //NOI18N
-
-                       // Not choosen
-                       return ""; //NOI18N
-               }
-       }
-
-       /**
-        * Some "getter" for HTML code 'disabled="disabled"' for e.g. submit buttons
-        *
-        * @param request Request instance
-        * @param session Session instance
-        * @return Whether the product is choosen
-        */
-       @Override
-       public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("request={0},session={1} - CALLED!", request, session)); //NOI18N
-
-               // Is product and session set?
-               if (request == null) {
-                       // Not set
-                       throw new NullPointerException("request is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Is something selected?
-               if (this.calculateTotalAmount(request, session) > 0) {
-                       // Trace message
-                       this.getLogger().trace("Returning empty string - EXIT!"); //NOI18N
-
-                       // Something has been choosen
-                       return ""; //NOI18N
-               } else {
-                       // Trace message
-                       this.getLogger().trace("Returning disabled=\"disabled\" - EXIT!"); //NOI18N
-
-                       // Nothing choosen yet
-                       return "disabled=\"disabled\""; //NOI18N
-               }
-       }
-
-       /**
-        * Marks given product as ordered in session
-        *
-        * @param product Product to mark as ordered
-        * @param session Session instance
-        */
-       @Override
-       public void markProductAsOrdered(final Product product, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Mark it as ordered by setting flag
-               this.getLogger().debug(MessageFormat.format("Marking product={0} as ordered.", product.getName())); //NOI18N
-               this.setValueInSession(product, session, SESSION_ORDERED, "true"); //NOI18N
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-
-       /**
-        * Unmarks given product as ordered in session
-        *
-        * @param product Product to unmark as ordered
-        * @param session Session instance
-        */
-       @Override
-       public void unmarkProductAsOrdered(final Product product, final HttpSession session) {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("product={0},session={1} - CALLED!", product, session)); //NOI18N
-
-               // Is product and session set?
-               if (product == null) {
-                       // Not set
-                       throw new NullPointerException("product is null"); //NOI18N
-               } else if (session == null) {
-                       // Not set
-                       throw new NullPointerException("session is null"); //NOI18N
-               }
-
-               // Mark it as ordered by setting flag
-               this.getLogger().debug(MessageFormat.format("Unmarking product={0} as ordered.", product.getName())); //NOI18N
-               this.clearSessionAttribute(product, session, SESSION_ORDERED);
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-}
diff --git a/src/java/org/mxchange/pizzaservice/service/Service.java b/src/java/org/mxchange/pizzaservice/service/Service.java
deleted file mode 100644 (file)
index 383e21d..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 2015 Roland Haeder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.pizzaservice.service;
-
-import java.util.Iterator;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import org.mxchange.jcore.FrameworkInterface;
-import org.mxchange.pizzaservice.product.Product;
-
-/**
- *
- * @author Roland Haeder
- */
-public interface Service extends FrameworkInterface {
-       /**
-        * HTTP parameter "amount"
-        */
-       public static final String HTTP_PARAM_AMOUNT = "amount";
-
-       /**
-        * HTTP parameter "choose"
-        */
-       public static final String HTTP_PARAM_CHOOSE = "choose";
-
-       /**
-        * Session key "ordered"
-        */
-       public static final String SESSION_ORDERED = "ordered";
-
-       /**
-        * Mask for all parameters
-        */
-       public static final String HTTP_PARAM_MASK = "%s[%s]";
-
-       /**
-        * Getter for product iterator
-        * 
-        * @return Iterator for all products
-        */
-       public Iterator<Map.Entry<String, Product>> getProductsIterator ();
-
-       /**
-        * Some "getter" for amount from session
-        *
-        * @param product Product instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       public String getAmountFromSession (final Product product, final HttpSession session);
-
-       /**
-        * Some "getter" for choose from session
-        *
-        * @param product Product instance
-        * @param session Session instance
-        * @return Choose as string
-        */
-       public String getChooseFromSession (final Product product, final HttpSession session);
-
-       /**
-        * Handler for amount from session
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       public String handleAmountFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Handler for choosen (checkbox) from request or session
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       public String handleChooseFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Some "getter" for printable choosen (checkbox) from request or session
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       public String getPrintableChoosenFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Some "getter" for total price of position from request or session.
-        * Single price and amount is multiplyed.
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Amount as string
-        */
-       public float getTotalPositionPriceFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Checks whether the given product is choosen, request overules session.
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Whether the product is choosen
-        */
-       public boolean isProductChoosen (final Product product, final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Calculates total price of all choosen products
-        *
-        * @param request Request instance
-        * @param session Session instance
-        * @return Total price of all choosen products
-        */
-       public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Calculates total amount of all choosen products
-        *
-        * @param request Request instance
-        * @param session Session instance
-        * @return Total amount of all choosen products
-        */
-       public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Some "getter" for HTML code 'checked="checked"' if the product is choosen
-        *
-        * @param product Product instance
-        * @param request Request instance
-        * @param session Session instance
-        * @return Whether the product is choosen
-        */
-       public String getCheckedHtmlFromProduct (final Product product, final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Some "getter" for HTML code 'disabled="disabled"' for e.g. submit buttons
-        *
-        * @param request Request instance
-        * @param session Session instance
-        * @return Whether the product is choosen
-        */
-       public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session);
-
-       /**
-        * Marks given product as ordered in session
-        *
-        * @param product Product to mark as ordered
-        * @param session Session instance
-        */
-       public void markProductAsOrdered(final Product product, final HttpSession session);
-
-       /**
-        * Unmarks given product as ordered in session
-        *
-        * @param product Product to unmark as ordered
-        * @param session Session instance
-        */
-       public void unmarkProductAsOrdered(final Product product, final HttpSession session);
-}
index 13e0059fffb79e9888f6bfa2f5249d72cad958d1..0c186a9a30ec14c40c4258afea7abda5d7fa13ef 100644 (file)
@@ -7,4 +7,5 @@
       <description>Keep a copy of the generated servlet class' java code.</description>
     </property>
   </jsp-config>
+  <parameter-encoding default-charset="utf-8" />
 </glassfish-web-app>
index b14fc10d28d6326cc1852ebfdb87e2ed5c087b23..6e1b070174fd9143c25a9211d6c5c526a25297f4 100644 (file)
@@ -5,18 +5,18 @@
 --%>
 
 <%@page errorPage="errorHandler.jsp" %>
-<%@page import="org.mxchange.pizzaservice.service.PizzaService"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaServiceApplication"%>
 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <title><%=PizzaService.MAIN_TITLE%> - Sitzung beenden</title>
+               <title><%=PizzaServiceApplication.MAIN_TITLE%> - Sitzung beenden</title>
        </head>
 
        <body>
                <div id="title">
-                       <h1><%=PizzaService.MAIN_TITLE%> - Sitzung beenden</h1>
+                       <h1><%=PizzaServiceApplication.MAIN_TITLE%> - Sitzung beenden</h1>
                </div>
 
                <div id="menu">
index e526857fc580a7da35c6eae3f6bd02b9442f6140..a9c156b4f41dc2180770be8670fb094dd2c2552a 100644 (file)
@@ -4,25 +4,25 @@
        Author     : Roland Haeder
 --%>
 
+<%@page import="org.mxchange.pizzaservice.application.PizzaApplication"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaServiceApplication"%>
 <%@page import="java.io.PrintWriter"%>
-<%@page import="org.mxchange.pizzaservice.service.PizzaService"%>
-<%@page import="org.mxchange.pizzaservice.service.Service"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
 <jsp:useBean id="date" class="java.util.Date" /><%
        // Init service instance
-       Service service = PizzaService.getInstance(application);
+       PizzaApplication service = PizzaService.getInstance(application);
 %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <title><%=PizzaService.MAIN_TITLE%> - Fehler</title>
+               <title><%=PizzaServiceApplication.MAIN_TITLE%> - Fehler</title>
        </head>
 
        <body>
                <div id="title">
-                       <h1><%=PizzaService.MAIN_TITLE%> - Fehler</h1>
+                       <h1><%=PizzaServiceApplication.MAIN_TITLE%> - Fehler</h1>
                </div>
 
                <div id="menu">
index 2325e0d2171ad9ce29d4ce8192983223033213e8..da3bbc30d04819f3bc03a9bc7e0febcb9a52984c 100644 (file)
@@ -4,28 +4,28 @@
        Author     : Roland Haeder
 --%>
 
+<%@page import="org.mxchange.pizzaservice.application.PizzaApplication"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaServiceApplication"%>
 <%@page errorPage="errorHandler.jsp" %>
 <%@page import="java.util.Map"%>
 <%@page import="java.util.Iterator"%>
 <%@page import="org.mxchange.pizzaservice.product.Product"%>
-<%@page import="org.mxchange.pizzaservice.service.PizzaService"%>
-<%@page import="org.mxchange.pizzaservice.service.Service"%>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 
 <%
        // Init service instance
-       Service service = PizzaService.getInstance(application);
+       PizzaApplication service = PizzaServiceApplication.getInstance(application);
 %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <title><%=PizzaService.MAIN_TITLE%> - Vielen Dank!</title>
+               <title><%=PizzaServiceApplication.MAIN_TITLE%> - Vielen Dank!</title>
        </head>
 
        <body>
                <div id="title">
-                       <h1><%=PizzaService.MAIN_TITLE%> - Vielen Dank!</h1>
+                       <h1><%=PizzaServiceApplication.MAIN_TITLE%> - Vielen Dank!</h1>
                </div>
 
                <div id="menu">
index 3b8890b82c98c9eb05d0567d89f300454c55be47..0eedc91abdec937faf4e91d24c8379ccdb5884c1 100644 (file)
@@ -7,25 +7,25 @@
 <%@page errorPage="errorHandler.jsp" %>
 <%@page import="java.util.Map"%>
 <%@page import="java.util.Iterator"%>
-<%@page import="org.mxchange.pizzaservice.service.Service"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaServiceApplication"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaApplication"%>
 <%@page import="org.mxchange.pizzaservice.product.Product"%>
-<%@page import="org.mxchange.pizzaservice.service.PizzaService"%>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 
 <%
        // Init service instance
-       Service service = PizzaService.getInstance(application);
+       PizzaApplication service = PizzaServiceApplication.getInstance(application);
 %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <title><%=PizzaService.MAIN_TITLE%> - Eingangsseite</title>
+               <title><%=PizzaServiceApplication.MAIN_TITLE%> - Eingangsseite</title>
        </head>
 
        <body>
                <div id="title">
-                       <h1><%=PizzaService.MAIN_TITLE%> - Eingangsseite</h1>
+                       <h1><%=PizzaServiceApplication.MAIN_TITLE%> - Eingangsseite</h1>
                </div>
 
                <div id="menu">
index c59fa3518d3b80ebc3468824b5d185a848e29742..78019fe86a29c3aab217dc0610e7730deef7ae3e 100644 (file)
@@ -8,24 +8,24 @@
 <%@page import="java.util.Iterator"%>
 <%@page import="java.util.Map"%>
 <%@page import="org.mxchange.pizzaservice.product.Product"%>
-<%@page import="org.mxchange.pizzaservice.service.Service"%>
-<%@page import="org.mxchange.pizzaservice.service.PizzaService"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaApplication"%>
+<%@page import="org.mxchange.pizzaservice.application.PizzaServiceApplication"%>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 
 <%
        // Init service instance
-       Service service = PizzaService.getInstance(application);
+       PizzaApplication service = PizzaServiceApplication.getInstance(application);
 %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-               <title><%=PizzaService.MAIN_TITLE%> - Bestellung anzeigen</title>
+               <title><%=PizzaServiceApplication.MAIN_TITLE%> - Bestellung anzeigen</title>
        </head>
 
        <body>
                <div id="title">
-                       <h1><%=PizzaService.MAIN_TITLE%> - Bestellung anzeigen</h1>
+                       <h1><%=PizzaServiceApplication.MAIN_TITLE%> - Bestellung anzeigen</h1>
                </div>
 
                <div id="menu">