]> git.mxchange.org Git - pizzaservice-war.git/blobdiff - src/java/org/mxchange/pizzaapplication/beans/controller/PizzaServiceWebBean.java
updated jcore-ee-logger.jar, jshop-ee-lib.jar + added some stuff + renamed variable...
[pizzaservice-war.git] / src / java / org / mxchange / pizzaapplication / beans / controller / PizzaServiceWebBean.java
index 3b815a8f154a2f9467bd64bab9df0d1ac6923da9..c184dbcf4fb2d503cb2c5f78f887c24eb9606299 100644 (file)
  */
 package org.mxchange.pizzaapplication.beans.controller;
 
-import java.io.IOException;
 import java.rmi.RemoteException;
+import java.sql.SQLException;
 import java.util.Deque;
-import java.util.Iterator;
+import java.util.Queue;
 import javax.annotation.PostConstruct;
-import javax.ejb.EJB;
 import javax.enterprise.context.SessionScoped;
 import javax.faces.FacesException;
 import javax.inject.Named;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import org.mxchange.jcoreee.beans.BaseFrameworkBean;
-import org.mxchange.jshopcore.exceptions.CategoryTitleAlreadyUsedException;
-import org.mxchange.jshopcore.exceptions.ProductTitleAlreadyUsedException;
 import org.mxchange.jshopcore.model.category.Category;
+import org.mxchange.jshopcore.model.category.CategorySessionBeanRemote;
+import org.mxchange.jshopcore.model.category.ProductCategory;
 import org.mxchange.jshopcore.model.product.Product;
-import org.mxchange.jshopeelib.beans.remote.shop.ShopSessionBeanRemote;
+import org.mxchange.jshopcore.model.product.ProductSessionBeanRemote;
 
 /**
  * Main application class
@@ -45,21 +44,17 @@ public class PizzaServiceWebBean extends BaseFrameworkBean implements PizzaWebBe
        /**
         * Serial id
         */
-       private static final long serialVersionUID = 58137539530279L;
+       private static final long serialVersionUID = 58_137_539_530_279L;
 
        /**
-        * Remote bean
+        * Remote bean for categories
         */
-       @EJB
-       private final ShopSessionBeanRemote remote;
+       private final CategorySessionBeanRemote category;
 
        /**
-        * Initializer block
+        * Remote bean for products
         */
-       {
-               // Get new application instance
-               this.getLogger().debug("INITIALIZER!"); //NOI18N
-       }
+       private final ProductSessionBeanRemote product;
 
        /**
         * Default constructor
@@ -67,16 +62,16 @@ public class PizzaServiceWebBean extends BaseFrameworkBean implements PizzaWebBe
         * @throws javax.naming.NamingException Something happened here?
         */
        public PizzaServiceWebBean () throws NamingException {
-               this.getLogger().trace("CALLED!"); //NOI18N
-
                // Get initial context
                InitialContext context = new InitialContext();
 
                // Try to lookup the bean
-               this.remote = (ShopSessionBeanRemote) context.lookup("ejb/stateless-shop"); //NOI18N
+               this.category = (CategorySessionBeanRemote) context.lookup("ejb/stateless-category"); //NOI18N
+
+               // Try to lookup the bean
+               this.product = (ProductSessionBeanRemote) context.lookup("ejb/stateless-product"); //NOI18N
        }
 
-       @Override
        @PostConstruct
        public void init () throws RuntimeException {
                // Call super init first
@@ -84,9 +79,9 @@ public class PizzaServiceWebBean extends BaseFrameworkBean implements PizzaWebBe
        }
 
        @Override
-       public Iterator<Product> getAvailableProductsIterator () throws FacesException {
+       public Queue<Product> getAvailableProducts () throws FacesException {
                try {
-                       return this.remote.getAvailableProductsIterator();
+                       return this.getProduct().getAvailableProducts();
                } catch (final RemoteException ex) {
                        // Continue to throw
                        throw new FacesException(ex);
@@ -94,72 +89,40 @@ public class PizzaServiceWebBean extends BaseFrameworkBean implements PizzaWebBe
        }
 
        @Override
-       public Iterator<Product> getAllProductsIterator () throws FacesException {
+       public Queue<Category> getAllCategories () throws FacesException {
                try {
-                       return this.remote.getAllProductsIterator();
-               } catch (final RemoteException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
-       }
+                       // Fake zero category
+                       Category c = new ProductCategory(0L, "Ist oberste Kategorie", 0L);
 
-       @Override
-       public Deque<Product> getAvailableProducts () throws FacesException {
-               try {
-                       return this.remote.getAvailableProducts();
-               } catch (final RemoteException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
-       }
+                       // Get List back
+                       Deque<Category> deque = this.getCategory().getAllCategories();
 
-       @Override
-       public Deque<Product> getAllProducts () throws FacesException {
-               try {
-                       return this.remote.getAllProducts();
-               } catch (final RemoteException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
-       }
+                       // Add fake category
+                       deque.addFirst(c);
 
-       @Override
-       public Iterator<Category> getAllCategoriesIterator () throws FacesException {
-               try {
-                       return this.remote.getAllCategoriesIterator();
-               } catch (final RemoteException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
-       }
-
-       @Override
-       public Deque<Category> getAllCategories () throws FacesException {
-               try {
-                       return this.remote.getAllCategories();
-               } catch (final RemoteException ex) {
+                       // Return it
+                       return deque;
+               } catch (final SQLException ex) {
                        // Continue to throw
                        throw new FacesException(ex);
                }
        }
 
-       @Override
-       public void doAdminAddCategory (final Category category) throws FacesException {
-               try {
-                       this.remote.doAdminAddCategory(category);
-               } catch (final IOException | CategoryTitleAlreadyUsedException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
+       /**
+        * Getter for shop remote bean
+        *
+        * @return Remote shop bean
+        */
+       private CategorySessionBeanRemote getCategory () {
+               return this.category;
        }
 
-       @Override
-       public void doAdminAddProduct (final Product product) throws FacesException {
-               try {
-                       this.remote.doAdminAddProduct(product);
-               } catch (final IOException | ProductTitleAlreadyUsedException ex) {
-                       // Continue to throw
-                       throw new FacesException(ex);
-               }
+       /**
+        * Getter for shop remote bean
+        *
+        * @return Remote shop bean
+        */
+       private ProductSessionBeanRemote getProduct () {
+               return this.product;
        }
 }