]> 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 257e20d65767c84785665bcc863a86f88a8d844d..c184dbcf4fb2d503cb2c5f78f887c24eb9606299 100644 (file)
  */
 package org.mxchange.pizzaapplication.beans.controller;
 
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
 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.enterprise.context.SessionScoped;
 import javax.faces.FacesException;
@@ -29,11 +27,11 @@ 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
@@ -46,20 +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
         */
-       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,102 +62,67 @@ 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");
+               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 FacesException {
-               // Trace message
-               this.getLogger().trace("CALLED!"); //NOI18N
-
-               // Super call
-               super.init();
+       public void init () throws RuntimeException {
+               // Call super init first
+               super.genericInit();
        }
 
        @Override
-       public Iterator<Product> getAvailableProductsIterator () throws RemoteException {
+       public Queue<Product> getAvailableProducts () throws FacesException {
                try {
-                       return this.remote.getAvailableProductsIterator();
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
+                       return this.getProduct().getAvailableProducts();
+               } catch (final RemoteException ex) {
                        // Continue to throw
-                       throw new RemoteException("getAvailableProductsIterator() failed", ex);
+                       throw new FacesException(ex);
                }
        }
 
        @Override
-       public Iterator<Product> getAllProductsIterator () throws RemoteException {
+       public Queue<Category> getAllCategories () throws FacesException {
                try {
-                       return this.remote.getAllProductsIterator();
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
-                       // Continue to throw
-                       throw new RemoteException("getAllProductsIterator() failed.", ex);
-               }
-       }
+                       // Fake zero category
+                       Category c = new ProductCategory(0L, "Ist oberste Kategorie", 0L);
 
-       @Override
-       public Deque<Product> getAvailableProducts () throws RemoteException {
-               try {
-                       return this.remote.getAvailableProducts();
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
-                       // Continue to throw
-                       throw new RemoteException("getAvailableProducts() failed.", ex);
-               }
-       }
+                       // Get List back
+                       Deque<Category> deque = this.getCategory().getAllCategories();
 
-       @Override
-       public Deque<Product> getAllProducts () throws RemoteException {
-               try {
-                       return this.remote.getAllProducts();
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
-                       // Continue to throw
-                       throw new RemoteException("getAllProducts() failed", ex);
-               }
-       }
+                       // Add fake category
+                       deque.addFirst(c);
 
-       @Override
-       public Iterator<Category> getAllCategoriesIterator () throws RemoteException {
-               try {
-                       return this.remote.getAllCategoriesIterator();
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
-                       // Continue to throw
-                       throw new RemoteException("getAllCategoriesIterator() failed.", ex);
-               }
-       }
-
-       @Override
-       public Deque<Category> getAllCategories () throws RemoteException {
-               try {
-                       return this.remote.getAllCategories();
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
+                       // Return it
+                       return deque;
+               } catch (final SQLException ex) {
                        // Continue to throw
-                       throw new RemoteException("getAllCategories() failed.", ex);
+                       throw new FacesException(ex);
                }
        }
 
-       @Override
-       public void doAdminAddCategory (final Category category) throws RemoteException, CategoryTitleAlreadyUsedException {
-               try {
-                       this.remote.doAdminAddCategory(category);
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
-                       // Continue to throw
-                       throw new RemoteException("doAdminAddCategory() failed.", ex);
-               }
+       /**
+        * Getter for shop remote bean
+        *
+        * @return Remote shop bean
+        */
+       private CategorySessionBeanRemote getCategory () {
+               return this.category;
        }
 
-       @Override
-       public void doAdminAddProduct (final Product product) throws RemoteException, ProductTitleAlreadyUsedException {
-               try {
-                       this.remote.doAdminAddProduct(product);
-               } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
-                       // Continue to throw
-                       throw new RemoteException("doAdminAddProduct() failed.", ex);
-               }
+       /**
+        * Getter for shop remote bean
+        *
+        * @return Remote shop bean
+        */
+       private ProductSessionBeanRemote getProduct () {
+               return this.product;
        }
 }