X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=src%2Fjava%2Forg%2Fmxchange%2Fpizzaapplication%2Fbeans%2Fcontroller%2FPizzaServiceWebBean.java;h=c184dbcf4fb2d503cb2c5f78f887c24eb9606299;hb=fd5a4cc816eb64e69093320ae114cfce3629e3a7;hp=e69bba25a0cdf564b225f3158becde83d358e013;hpb=ea1172472b6bd929318e20bddecf68771497439b;p=pizzaservice-war.git diff --git a/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaServiceWebBean.java b/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaServiceWebBean.java index e69bba25..c184dbcf 100644 --- a/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaServiceWebBean.java +++ b/src/java/org/mxchange/pizzaapplication/beans/controller/PizzaServiceWebBean.java @@ -16,21 +16,22 @@ */ 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; 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.jshopcore.model.product.ProductSessionBeanRemote; /** * Main application class @@ -43,118 +44,85 @@ 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; /** - * Initializer block + * Remote bean for categories */ - { - // Get new application instance - this.getLogger().debug("INITIALIZER!"); //NOI18N - } + private final CategorySessionBeanRemote category; /** - * Default constructor + * Remote bean for products */ - public PizzaServiceWebBean () { - this.getLogger().trace("CALLED!"); //NOI18N - } + private final ProductSessionBeanRemote product; - @Override - @PostConstruct - public void init () throws FacesException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N + /** + * Default constructor + * + * @throws javax.naming.NamingException Something happened here? + */ + public PizzaServiceWebBean () throws NamingException { + // Get initial context + InitialContext context = new InitialContext(); - // Super call - super.init(); + // Try to lookup the bean + this.category = (CategorySessionBeanRemote) context.lookup("ejb/stateless-category"); //NOI18N - try { - // Call init method - this.app.init(); - } catch (final SQLException | IOException ex) { - // Continue to throw - throw new FacesException(ex); - } + // Try to lookup the bean + this.product = (ProductSessionBeanRemote) context.lookup("ejb/stateless-product"); //NOI18N } - @Override - public Iterator getAvailableProductsIterator () throws RemoteException { - try { - return this.app.getAvailableProductsIterator(); - } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { - // Continue to throw - throw new RemoteException("getAvailableProductsIterator() failed", ex); - } + @PostConstruct + public void init () throws RuntimeException { + // Call super init first + super.genericInit(); } @Override - public Iterator getAllProductsIterator () throws RemoteException { + public Queue getAvailableProducts () throws FacesException { try { - return this.app.getAllProductsIterator(); - } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { + return this.getProduct().getAvailableProducts(); + } catch (final RemoteException ex) { // Continue to throw - throw new RemoteException("getAllProductsIterator() failed.", ex); + throw new FacesException(ex); } } @Override - public Deque getAvailableProducts () throws RemoteException { + public Queue getAllCategories () throws FacesException { try { - return this.app.getAvailableProducts(); - } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { - // Continue to throw - throw new RemoteException("getAvailableProducts() failed.", ex); - } - } + // Fake zero category + Category c = new ProductCategory(0L, "Ist oberste Kategorie", 0L); - @Override - public Deque getAllProducts () throws RemoteException { - try { - return this.app.getAllProducts(); - } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { - // Continue to throw - throw new RemoteException("getAllProducts() failed", ex); - } - } + // Get List back + Deque deque = this.getCategory().getAllCategories(); - @Override - public Iterator getAllCategoriesIterator () throws RemoteException { - try { - return this.app.getAllCategoriesIterator(); - } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) { - // Continue to throw - throw new RemoteException("getAllCategoriesIterator() failed.", ex); - } - } + // Add fake category + deque.addFirst(c); - @Override - public Deque getAllCategories () throws RemoteException { - try { - return this.app.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.app.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.app.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; } }