]> git.mxchange.org Git - pizzaservice-war.git/blobdiff - src/java/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java
Converted private constructor to public init() method with context, still this cannot...
[pizzaservice-war.git] / src / java / org / mxchange / pizzaapplication / application / PizzaServiceApplication.java
index c74d2592255c9d2053d95ddbc95e20c8997e471c..d8253814c2c7a000741ccc59f10bb1774ccbd29c 100644 (file)
@@ -93,13 +93,20 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                if (object instanceof PizzaApplication) {
                        // Instance is set, so casting should work
                        instance = (PizzaApplication) object;
+
+                       // Debug message
+                       instance.getLogger().debug(MessageFormat.format("Using existing instance {0} ...", object)); //NOI18N
                } else if (object instanceof Object) {
                        // Not correct instance
                        throw new ServletException("app is not set correctly"); //NOI18N
                } else {
                        try {
                                // "service" is null, so initialize it
-                               instance = new PizzaServiceApplication(context);
+                               instance = new PizzaServiceApplication();
+                               instance.init(context);
+
+                       // Debug message
+                       instance.getLogger().debug(MessageFormat.format("Created new instance {0} ...", object)); //NOI18N
                        } catch (final UnsupportedDatabaseBackendException | SQLException | IOException | BadTokenException ex) {
                                throw new ServletException(ex);
                        }
@@ -125,12 +132,8 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                new PizzaServiceApplication().start();
        }
 
-       /**
-        * Constructor with servet configuration
-        *
-        * @param context Servlet context
-        */
-       private PizzaServiceApplication (final ServletContext context) throws UnsupportedDatabaseBackendException, SQLException, IOException, BadTokenException {
+       @Override
+       public void init (final ServletContext context) throws UnsupportedDatabaseBackendException, SQLException, IOException, BadTokenException {
                // Temporary initialize default bundle
                // @TODO The JSF may have better internatialization support
                this.initBundle();
@@ -366,7 +369,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Get attribute
-               Object object = this.getValueFromSession(product, session, HTTP_PARAM_CHOOSE);
+               Object object = this.getValueFromSession(product, session, HTTP_PARAM_ITEM_ID);
 
                // Is the object null?
                if (object == null) {
@@ -403,8 +406,14 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                        throw new NullPointerException("session is null"); //NOI18N
                }
 
+               // Get "enabled" from request scope
+               Boolean enabled = Boolean.parseBoolean((String) request.getAttribute("enabled")); //NOI18N
+
+               // Debug message
+               this.getLogger().debug(MessageFormat.format("enabled={0}", enabled)); //NOI18N
+
                // Is something selected?
-               if (this.calculateTotalAmount(request, session) > 0) {
+               if ((enabled) || (this.calculateTotalAmount(request, session) > 0)) {
                        // Trace message
                        this.getLogger().trace("Returning empty string - EXIT!"); //NOI18N
 
@@ -833,7 +842,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
 
                // Mark it as ordered by setting flag
                this.getLogger().debug(MessageFormat.format("Marking product={0} as choosen.", product.getId())); //NOI18N
-               this.setValueInSession(product, session, HTTP_PARAM_CHOOSE, "1"); //NOI18N
+               this.setValueInSession(product, session, HTTP_PARAM_ITEM_ID, "1"); //NOI18N
 
                // Trace message
                this.getLogger().trace("EXIT!"); //NOI18N
@@ -910,7 +919,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
 
                // Mark it as ordered by setting flag
                this.getLogger().debug(MessageFormat.format("Unmarking product={0} as choosen.", product.getId())); //NOI18N
-               this.clearSessionAttribute(product, session, HTTP_PARAM_CHOOSE);
+               this.clearSessionAttribute(product, session, HTTP_PARAM_ITEM_ID);
 
                // Trace message
                this.getLogger().trace("EXIT!"); //NOI18N
@@ -1056,14 +1065,14 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Get reqzest element
-               object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_CHOOSE, product.getId()));
+               object = request.getParameter(String.format(HTTP_PARAM_MASK, HTTP_PARAM_ITEM_ID, product.getId()));
                this.getLogger().debug(MessageFormat.format("product={0},object={1}", product.getId(), object)); //NOI18N
 
                // Is it null?
                if (object == null) {
                        // Unset session
                        this.getLogger().debug(MessageFormat.format("Unsetting session for product={0} ...", product.getId())); //NOI18N
-                       this.clearSessionAttribute(product, session, HTTP_PARAM_CHOOSE);
+                       this.clearSessionAttribute(product, session, HTTP_PARAM_ITEM_ID);
                        this.clearSessionAttribute(product, session, HTTP_PARAM_AMOUNT);
 
                        // Return empty string
@@ -1071,7 +1080,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Then set it in session
-               this.setValueInSession(product, session, HTTP_PARAM_CHOOSE, object);
+               this.setValueInSession(product, session, HTTP_PARAM_ITEM_ID, object);
 
                // Cast to string and return it
                this.getLogger().debug(MessageFormat.format("product={0} - Returning {1} ...", product.getId(), object)); //NOI18N
@@ -1115,7 +1124,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
         *
         * @param product Product instance
         * @param session HttpSession instance
-        * @return
+        * @return Whether the product has been ordered
         */
        private boolean isProductOrdered (final Product product, final HttpSession session) {
                // Trace message
@@ -1159,7 +1168,10 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                try {
                        // Init properties
                        this.initProperties();
-               } catch (final IOException ex) {
+
+                       // And frontends
+                       this.initDatabaseFrontends();
+               } catch (final IOException | UnsupportedDatabaseBackendException | SQLException ex) {
                        // Abort here
                        this.abortProgramWithException(ex);
                }
@@ -1302,7 +1314,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                String available = request.getParameter(PizzaProductDatabaseConstants.COLUMN_AVAILABLE);
 
                // Debug message
-               this.getLogger().debug(MessageFormat.format("title={0},price={1},category={2},available={3}", title, price, category, available));
+               this.getLogger().debug(MessageFormat.format("title={0},price={1},category={2},available={3}", title, price, category, available)); //NOI18N
 
                // Variables for converting
                Long id = null;
@@ -1407,12 +1419,12 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
        @Override
        public String getPrintableProduktCategory (final Product product) throws ServletException {
                // Trace message
-               this.getLogger().trace("product=" + product + " - CALLED!");
+               this.getLogger().trace(MessageFormat.format("product={0} - CALLED!", product)); //NOI18N
 
                // product must not be null
                if (product == null) {
                        // Abort here
-                       throw new NullPointerException("product is null");
+                       throw new NullPointerException("product is null"); //NOI18N
                }
 
                // Declare category
@@ -1426,7 +1438,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Debug message
-               this.getLogger().debug("category=" + category);
+               this.getLogger().debug(MessageFormat.format("category={0}", category)); //NOI18N
 
                String title = null;
                try {
@@ -1438,7 +1450,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Trace message
-               this.getLogger().trace("title=" + title + " - EXIT!");
+               this.getLogger().trace(MessageFormat.format("title={0} - EXIT!", title)); //NOI18N
 
                // Return it
                return title;
@@ -1459,7 +1471,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
         */
        private boolean isProductTitleUsed (final HttpServletRequest request) throws IOException, SQLException, BadTokenException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
                // Trace message
-               this.getLogger().trace("request=" + request + " - CALLED!");
+               this.getLogger().trace(MessageFormat.format("request={0} - CALLED!", request)); //NOI18N
 
                // Init title
                String title = request.getParameter(PizzaProductDatabaseConstants.COLUMN_TITLE);
@@ -1467,7 +1479,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                // request must not be null and "title" must be found and non-empty
                if (request == null) {
                        // Abort here
-                       throw new NullPointerException("request is null");
+                       throw new NullPointerException("request is null"); //NOI18N
                } else if (title == null) {
                        // title is not set
                        throw new IllegalArgumentException(MessageFormat.format("{0} is not set.", PizzaProductDatabaseConstants.COLUMN_TITLE)); //NOI18N
@@ -1480,7 +1492,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                boolean isUsed = this.isProductTitleUsed(title);
 
                // Trace message
-               this.getLogger().trace("isUsed=" + isUsed + " - EXIT!");
+               this.getLogger().trace(MessageFormat.format("isUsed={0} - EXIT!", isUsed)); //NOI18N
 
                // Return it
                return isUsed;
@@ -1495,15 +1507,15 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
        @Override
        public void doAdminHandleProductForms (final HttpServletRequest request, final HttpServletResponse response) throws ServletException {
                // Trace message
-               this.getLogger().trace("request=" + request + ",response=" + response + " - CALLED!");
+               this.getLogger().trace(MessageFormat.format("request={0},response={1} - CALLED!", request, response)); //NOI18N
 
                // request and response must both be set
                if (request == null) {
                        // request is null
-                       throw new NullPointerException("request is null");
+                       throw new NullPointerException("request is null"); //NOI18N
                } else if (response == null) {
                        // response is null
-                       throw new NullPointerException("response is null");
+                       throw new NullPointerException("response is null"); //NOI18N
                }
 
                // Try this operations
@@ -1515,10 +1527,10 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                                        // Is it already added?
                                        if (this.isProductTitleUsed(request)) {
                                                // Debug message
-                                               this.getLogger().debug("Already used, redirecting ...");
+                                               this.getLogger().debug("Already used, redirecting ..."); //NOI18N
 
                                                // Already added, so redirect here, else a ServletException will be thrown
-                                               response.sendRedirect(request.getContextPath() + "/admin/product.jsp?already=1");
+                                               response.sendRedirect(String.format("%s/admin/product.jsp?already=1", request.getContextPath())); //NOI18N
                                        } else {
                                                // Add new product
                                                this.doAdminAddProduct(request);
@@ -1539,7 +1551,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Trace message
-               this.getLogger().trace("EXIT!");
+               this.getLogger().trace("EXIT!"); //NOI18N
        }
 
        /**
@@ -1551,15 +1563,15 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
        @Override
        public void doAdminHandleCategoryForms (final HttpServletRequest request, final HttpServletResponse response) throws ServletException {
                // Trace message
-               this.getLogger().trace("request=" + request + ",response=" + response + " - CALLED!");
+               this.getLogger().trace(MessageFormat.format("request={0},response={1} - CALLED!", request, response)); //NOI18N
 
                // request and response must both be set
                if (request == null) {
                        // request is null
-                       throw new NullPointerException("request is null");
+                       throw new NullPointerException("request is null"); //NOI18N
                } else if (response == null) {
                        // response is null
-                       throw new NullPointerException("response is null");
+                       throw new NullPointerException("response is null"); //NOI18N
                }
 
                // Try this operations
@@ -1571,10 +1583,10 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                                        // Is the category title already used?
                                        if (this.isCategoryTitleUsed(request)) {
                                                // Debug message
-                                               this.getLogger().debug("Already used, redirecting ...");
+                                               this.getLogger().debug("Already used, redirecting ..."); //NOI18N
 
                                                // Already added, so redirect here, else a ServletException will be thrown
-                                               response.sendRedirect(request.getContextPath() + "/admin/category.jsp?already=1");
+                                               response.sendRedirect(String.format("%s/admin/category.jsp?already=1", request.getContextPath())); //NOI18N
                                        } else {
                                                // Add new category
                                                this.doAdminAddCategory(request);
@@ -1595,7 +1607,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                }
 
                // Trace message
-               this.getLogger().trace("EXIT!");
+               this.getLogger().trace("EXIT!"); //NOI18N
        }
 
        /**
@@ -1613,7 +1625,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
         */
        private boolean isCategoryTitleUsed (final HttpServletRequest request) throws IOException, SQLException, BadTokenException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
                // Trace message
-               this.getLogger().trace("request=" + request + " - CALLED!");
+               this.getLogger().trace(MessageFormat.format("request={0} - CALLED!", request)); //NOI18N
 
                // Init title
                String title = request.getParameter(PizzaCategoryDatabaseConstants.COLUMN_TITLE);
@@ -1621,7 +1633,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                // request must not be null and "title" must be found and non-empty
                if (request == null) {
                        // Abort here
-                       throw new NullPointerException("request is null");
+                       throw new NullPointerException("request is null"); //NOI18N
                } else if (title == null) {
                        // title is not set
                        throw new IllegalArgumentException(MessageFormat.format("{0} is not set.", PizzaCategoryDatabaseConstants.COLUMN_TITLE)); //NOI18N
@@ -1634,7 +1646,7 @@ public class PizzaServiceApplication extends BasePizzaServiceSystem implements P
                boolean isUsed = this.isCategoryTitleUsed(title);
 
                // Trace message
-               this.getLogger().trace("isUsed=" + isUsed + " - EXIT!");
+               this.getLogger().trace(MessageFormat.format("isUsed={0} - EXIT!", isUsed)); //NOI18N
 
                // Return it
                return isUsed;