+++ /dev/null
-/*
- * 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.pizzaapplication.beans.controller;
-
-import java.rmi.RemoteException;
-import java.util.Deque;
-import java.util.Iterator;
-import javax.faces.FacesException;
-import org.mxchange.jshop.beans.FrameworkBean;
-import org.mxchange.jshop.model.category.Category;
-import org.mxchange.jshop.model.item.AddableBasketItem;
-import org.mxchange.jshop.model.product.Product;
-
-/**
- *
- * @author Roland Haeder
- */
-public interface PizzaBean extends FrameworkBean {
- /**
- * Initializes this instance
- *
- * @throws FacesException If something was wrong
- */
- public void init () throws RuntimeException;
-
- /**
- * Some "getter" for an iterator of only available products
- *
- * @return Only available products
- * @throws java.rmi.RemoteException If anything went wrong
- */
- public Iterator<Product> getAvailableProductsIterator () throws RemoteException;
-
- /**
- * Some "getter" for an iterator of all products
- *
- * @return All products
- * @throws java.rmi.RemoteException If anything went wrong
- */
- public Iterator<Product> getAllProductsIterator () throws RemoteException;
-
- /**
- * Some "getter" for an iterator of all categories
- *
- * @return All categories
- * @throws java.rmi.RemoteException If anything went wrong
- */
- public Iterator<Category> getAllCategoriesIterator () throws RemoteException;
-
- /**
- * Some "getter" for a linked list of only available products
- *
- * @return Only available products
- * @throws java.rmi.RemoteException If anything went wrong
- */
- public Deque<Product> getAvailableProducts () throws RemoteException;
-
- /**
- * Some "getter" for a linked list of all products
- *
- * @return All products
- * @throws java.rmi.RemoteException If anything went wrong
- */
- public Deque<Product> getAllProducts () throws RemoteException;
-
- /**
- * Some "getter" for a linked list of all categories
- *
- * @return All categories
- * @throws java.rmi.RemoteException If anything went wrong
- */
- public Deque<Category> getAllCategories () throws RemoteException;
-
- /**
- * Generates a link for category's parent category. If none is given, the method will return only a small
- * note.
- *
- * @param category Category instance
- * @return HTML link for category's parent category
- * @deprecated Old lost code
- */
- @Deprecated
- public String generateLinkForParent (final Category category);
-
- /**
- * Checks if given Product instance is available and returns a printable
- * (human-readable) string.
- *
- * @param product Product instance to check
- * @return Human-readable version of product availability
- * @deprecated Old lost code
- */
- @Deprecated
- public String getPrintableProduktAvailability (final Product product);
-
- /**
- * Returns a printable (human-readable) string of product's category
- *
- * @param product Product instance to check
- * @return Human-readable version of product availability
- * @throws java.rmi.RemoteException If something unexpected happened
- * @deprecated Old lost code
- */
- @Deprecated
- public String getPrintableProduktCategory (final Product product) throws RemoteException;
-
- /**
- * Adds given category data from request to database
- *
- * @param category Category instance
- * @throws java.rmi.RemoteException If something unexpected happened
- */
- public void doAdminAddCategory (final Category category) throws RemoteException;
-
- /**
- * Adds given product data from request to database
- *
- * @param product Product instance
- * @throws java.rmi.RemoteException If something unexpected happened
- */
- public void doAdminAddProduct (final Product product) throws RemoteException;
-
- /**
- * Handles admin product form requests
- *
- * @throws java.rmi.RemoteException If something unexpected happened
- */
- public void doAdminHandleProductForms () throws RemoteException;
-
- /**
- * Handles admin category form requests
- *
- * @throws java.rmi.RemoteException If something unexpected happened
- */
- public void doAdminHandleCategoryForms () throws RemoteException;
-
- /**
- * Some "getter" for a product from given item
- * @param item Item instance
- * @return A Product instance
- * @throws java.rmi.RemoteException If something bad happens
- */
- public Product getProduct (final AddableBasketItem item) throws RemoteException;
-}
+++ /dev/null
-/*
- * 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.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 javax.annotation.PostConstruct;
-import javax.ejb.Stateless;
-import org.mxchange.jshop.beans.BaseFrameworkBean;
-import org.mxchange.jshop.exceptions.CategoryTitleAlreadyUsedException;
-import org.mxchange.jshop.exceptions.ProductTitleAlreadyUsedException;
-import org.mxchange.jshop.model.category.Category;
-import org.mxchange.jshop.model.item.AddableBasketItem;
-import org.mxchange.jshop.model.product.Product;
-import org.mxchange.pizzaapplication.application.PizzaApplication;
-import org.mxchange.pizzaapplication.application.PizzaServiceApplication;
-
-/**
- * Main application class
- *
- * @author Roland Haeder
- */
-@Stateless(name="controller", mappedName = "ejb/stateless-controller")
-public class PizzaServiceBean extends BaseFrameworkBean implements PizzaBean {
- /**
- * Serial id
- */
- private static final long serialVersionUID = 58137539530279L;
-
- /**
- * Pizza application
- */
- private final PizzaApplication app;
-
- /**
- * Initializer block
- */
- {
- // Get new application instance
- this.getLogger().debug("INITIALIZER!"); //NOI18N
- this.app = new PizzaServiceApplication();
- }
-
- /**
- * Default constructor
- */
- public PizzaServiceBean () {
- this.getLogger().trace("CALLED!"); //NOI18N
- }
-
- @Override
- @PostConstruct
- public void init () throws RuntimeException {
- // Trace message
- this.getLogger().trace("CALLED!"); //NOI18N
-
- try {
- // Call init method
- this.app.init();
- } catch (final SQLException | IOException ex) {
- // Continue to throw
- throw new RuntimeException(ex);
- }
- }
-
- @Override
- @Deprecated
- public String getPrintableProduktAvailability (final Product product) {
- return this.app.getPrintableProduktAvailability(product);
- }
-
- @Override
- public Iterator<Product> 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);
- }
- }
-
- @Override
- public Iterator<Product> getAllProductsIterator () throws RemoteException {
- try {
- return this.app.getAllProductsIterator();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("getAllProductsIterator() failed.", ex);
- }
- }
-
- @Override
- public Deque<Product> getAvailableProducts () throws RemoteException {
- try {
- return this.app.getAvailableProducts();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("getAvailableProducts() failed.", ex);
- }
- }
-
- @Override
- public Deque<Product> 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);
- }
- }
-
- @Override
- public Iterator<Category> 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);
- }
- }
-
- @Override
- public Deque<Category> getAllCategories () throws RemoteException {
- try {
- return this.app.getAllCategories();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("getAllCategories() failed.", ex);
- }
- }
-
- @Override
- public void doAdminAddCategory (final Category category) throws RemoteException {
- try {
- this.app.doAdminAddCategory(category);
- } catch (final CategoryTitleAlreadyUsedException | IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("doAdminAddCategory() failed.", ex);
- }
- }
-
- @Override
- public void doAdminAddProduct (final Product product) throws RemoteException {
- try {
- this.app.doAdminAddProduct(product);
- } catch (final ProductTitleAlreadyUsedException | IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("doAdminAddProduct() failed.", ex);
- }
- }
-
- @Override
- @Deprecated
- public String getPrintableProduktCategory (final Product product) throws RemoteException {
- try {
- return this.app.getPrintableProductCategory(product);
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("getPrintableProduktCategory() failed.", ex);
- }
- }
-
- @Override
- @Deprecated
- public void doAdminHandleProductForms () throws RemoteException {
- try {
- this.app.doAdminHandleProductForms();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException | ProductTitleAlreadyUsedException ex) {
- // Continue to throw
- throw new RemoteException("doAdminHandleProductForms() failed.", ex);
- }
- }
-
- @Override
- @Deprecated
- public void doAdminHandleCategoryForms () throws RemoteException {
- try {
- this.app.doAdminHandleCategoryForms();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException | CategoryTitleAlreadyUsedException ex) {
- // Continue to throw
- throw new RemoteException("doAdminHandleCategoryForms() failed.", ex);
- }
- }
-
- @Override
- public Product getProduct (final AddableBasketItem item) throws RemoteException {
- try {
- // Deligate to application
- return this.app.getProduct(item);
- } catch (IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new RemoteException("getProduct() failed.", ex);
- }
- }
-
- @Override
- @Deprecated
- public String generateLinkForParent (final Category category) {
- // Deligate to app
- return this.app.generateLinkForParent(category);
- }
-}
+++ /dev/null
-/*
- * 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.pizzaapplication.beans.customer;
-
-import java.lang.reflect.InvocationTargetException;
-import javax.ejb.Stateless;
-import javax.servlet.ServletException;
-import org.mxchange.jcore.client.Client;
-import org.mxchange.jcore.contact.Contact;
-import org.mxchange.jcore.contact.gender.Gender;
-import org.mxchange.jshop.beans.BaseFrameworkBean;
-import org.mxchange.jshop.beans.remote.customer.CustomerSessionBeanRemote;
-import org.mxchange.jshop.model.customer.ShopCustomer;
-
-/**
- * A customer bean which hides the customer instance
- *
- * @author Roland Haeder
- */
-@Stateless(name="customer", mappedName = "ejb/stateless-customer")
-public class ShopCustomerSessionBean extends BaseFrameworkBean implements CustomerSessionBeanRemote {
- /**
- * Serial number
- */
- private static final long serialVersionUID = 542145347916L;
-
- /**
- * Contact instance
- */
- private Contact contact;
-
- /**
- * Default constructor
- */
- public ShopCustomerSessionBean () {
- // Instance customer
- Contact customer = new ShopCustomer();
-
- // And set it here
- this.setContact(customer);
- }
-
- @Override
- public String getBirthday () {
- // Deligate to "hidden" object
- return this.getContact().getBirthday();
- }
-
- @Override
- public void setBirthday (final String birthday) {
- // Deligate to "hidden" object
- this.getContact().setBirthday(birthday);
- }
-
- @Override
- public String getCellphoneNumber () {
- // Deligate to "hidden" object
- return this.getContact().getCellphoneNumber();
- }
-
- @Override
- public void setCellphoneNumber (final String cellphoneNumber) {
- // Deligate to "hidden" object
- this.getContact().setCellphoneNumber(cellphoneNumber);
- }
-
- @Override
- public String getCity () {
- // Deligate to "hidden" object
- return this.getContact().getCity();
- }
-
- @Override
- public void setCity (final String city) {
- // Deligate to "hidden" object
- this.getContact().setCity(city);
- }
-
- @Override
- public String getComment () {
- // Deligate to "hidden" object
- return this.getContact().getComment();
- }
-
- @Override
- public void setComment (final String comment) {
- // Deligate to "hidden" object
- this.getContact().setComment(comment);
- }
-
- @Override
- public String getCompanyName () {
- // Deligate to "hidden" object
- return this.getContact().getCompanyName();
- }
-
- @Override
- public void setCompanyName (final String companyName) {
- // Deligate to "hidden" object
- this.getContact().setCompanyName(companyName);
- }
-
- @Override
- public String getCountryCode () {
- // Deligate to "hidden" object
- return this.getContact().getCountryCode();
- }
-
- @Override
- public void setCountryCode (final String countryCode) {
- // Deligate to "hidden" object
- this.getContact().setCountryCode(countryCode);
- }
-
- @Override
- public String getEmailAddress () {
- // Deligate to "hidden" object
- return this.getContact().getEmailAddress();
- }
-
- @Override
- public void setEmailAddress (final String emailAddress) {
- // Deligate to "hidden" object
- this.getContact().setEmailAddress(emailAddress);
- }
-
- @Override
- public String getFamilyName () {
- // Trace call
- //* NOISY-DEBUG: */ this.getLogger().trace("CALLED!");
-
- // Deligate to "hidden" object
- return this.getContact().getFamilyName();
- }
-
- @Override
- public void setFamilyName (final String familyName) {
- // Trace call
- //* NOISY-DEBUG: */ this.getLogger().trace(MessageFormat.format("familyName={0} - CALLED!", familyName));
-
- // Deligate to "hidden" object
- this.getContact().setFamilyName(familyName);
- }
-
- @Override
- public String getFaxNumber () {
- // Deligate to "hidden" object
- return this.getContact().getFaxNumber();
- }
-
- @Override
- public void setFaxNumber (final String faxNumber) {
- // Deligate to "hidden" object
- this.getContact().setFaxNumber(faxNumber);
- }
-
- @Override
- public Gender getGender () {
- // Deligate to "hidden" object
- return this.getContact().getGender();
- }
-
- @Override
- public void setGender (final Gender gender) {
- // Deligate to "hidden" object
- this.getContact().setGender(gender);
- }
-
- @Override
- public Long getHouseNumber () {
- // Deligate to "hidden" object
- return this.getContact().getHouseNumber();
- }
-
- @Override
- public void setHouseNumber (final Long houseNumber) {
- // Deligate to "hidden" object
- this.getContact().setHouseNumber(houseNumber);
- }
-
- @Override
- public String getPhoneNumber () {
- // Deligate to "hidden" object
- return this.getContact().getPhoneNumber();
- }
-
- @Override
- public void setPhoneNumber (final String phoneNumber) {
- // Deligate to "hidden" object
- this.getContact().setPhoneNumber(phoneNumber);
- }
-
- @Override
- public String getStreet () {
- // Deligate to "hidden" object
- return this.getContact().getStreet();
- }
-
- @Override
- public void setStreet (final String street) {
- // Deligate to "hidden" object
- this.getContact().setStreet(street);
- }
-
- @Override
- public String getFirstName () {
- // Deligate to "hidden" object
- return this.getContact().getFirstName();
- }
-
- @Override
- public void setFirstName (final String firstName) {
- // Deligate to "hidden" object
- this.getContact().setFirstName(firstName);
- }
-
- @Override
- public String getTranslatedGender () {
- // Deligate to "hidden" object
- return this.getContact().getTranslatedGender();
- }
-
- @Override
- public Long getZipCode () {
- // Deligate to "hidden" object
- return this.getContact().getZipCode();
- }
-
- @Override
- public void setZipCode (final Long zipCode) {
- // Deligate to "hidden" object
- this.getContact().setZipCode(zipCode);
- }
-
- @Override
- public boolean isOwnContact () {
- throw new UnsupportedOperationException("Not supported yet."); //NOI18N
- }
-
- @Override
- public void show (final Client client) {
- throw new UnsupportedOperationException("Not supported yet."); //NOI18N
- }
-
- /**
- * Setter for Contact instance
- * @param contact Contact instance to set
- */
- private void setContact (final Contact contact) {
- this.contact = contact;
- }
-
- /**
- * Getter for Contact instance
- * @return Contact instance
- */
- private Contact getContact () {
- return this.contact;
- }
-}
+++ /dev/null
-/*
- * 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.pizzaapplication.beans.data;
-
-import java.text.MessageFormat;
-import java.util.List;
-import javax.ejb.Stateful;
-import org.mxchange.jcore.contact.gender.Gender;
-import org.mxchange.jcore.contact.gender.GenderUtil;
-import org.mxchange.jshop.beans.BaseFrameworkBean;
-import org.mxchange.jshop.beans.remote.data.ShopDataBeanRemote;
-
-/**
- * A bean for static data
- *
- * @author Roland Haeder
- */
-@Stateful(name="data",mappedName = "ejb/stateful-data")
-public class ShopDataBean extends BaseFrameworkBean implements ShopDataBeanRemote {
- /**
- * Serial number
- */
- private static final long serialVersionUID = 54163294941857L;
-
- @Override
- public List<Gender> selectableGenders () {
- // Trace message
- this.getLogger().trace("CALLED!"); //NOI18N
-
- // Deligate call
- List<Gender> list = GenderUtil.selectableGenders();
-
- // Trace message
- this.getLogger().trace(MessageFormat.format("list={0} - EXIT!", list)); //NOI18N
-
- // Return it
- return list;
- }
-}
+++ /dev/null
-/*
- * 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.pizzaapplication.beans.pizzaservice;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.sql.SQLException;
-import java.util.Deque;
-import javax.annotation.PostConstruct;
-import javax.ejb.Stateless;
-import javax.servlet.ServletException;
-import org.mxchange.jshop.beans.BaseFrameworkBean;
-import org.mxchange.jshop.beans.remote.shop.ShopSessionBeanRemote;
-import org.mxchange.jshop.model.category.Category;
-import org.mxchange.jshop.model.product.Product;
-import org.mxchange.pizzaapplication.application.PizzaApplication;
-import org.mxchange.pizzaapplication.application.PizzaServiceApplication;
-
-/**
- * The session bean
- *
- * @author Roland Haeder
- */
-@Stateless (name="shop", mappedName = "ejb/stateless-shop")
-public class PizzaServiceSessionBean extends BaseFrameworkBean implements ShopSessionBeanRemote {
-
- /**
- * Serial number
- */
- private static final long serialVersionUID = 578314942948L;
-
- /**
- * Application instance
- */
- private final PizzaApplication app;
-
- /**
- * Initializer block
- */
- {
- // Get new application instance
- this.getLogger().debug("INITIALIZER!"); //NOI18N
- this.app = new PizzaServiceApplication();
- }
-
- /**
- * Default constructor
- */
- public PizzaServiceSessionBean () {
- this.getLogger().trace("CALLED!"); //NOI18N
- }
-
- @PostConstruct
- public void init () throws RuntimeException {
- // Trace message
- this.getLogger().trace("CALLED!"); //NOI18N
-
- try {
- // Call init method
- this.app.init();
- } catch (final SQLException | IOException ex) {
- // Continue to throw
- throw new RuntimeException(ex);
- }
- }
-
- @Override
- public Deque<Product> getAvailableProducts () throws ServletException {
- try {
- return this.app.getAvailableProducts();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new ServletException(ex);
- }
- }
-
- @Override
- public Deque<Product> getAllProducts () throws ServletException {
- try {
- return this.app.getAllProducts();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new ServletException(ex);
- }
- }
-
- @Override
- public Deque<Category> getAllCategories () throws ServletException {
- try {
- return this.app.getAllCategories();
- } catch (final IOException | SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ex) {
- // Continue to throw
- throw new ServletException(ex);
- }
- }
-}
import javax.servlet.jsp.tagext.BodyTagSupport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.mxchange.jshop.beans.remote.shop.ShopSessionBeanRemote;
import org.mxchange.jshop.model.item.AddableBasketItem;
import org.mxchange.jshop.model.product.Product;
-import org.mxchange.pizzaapplication.beans.controller.PizzaBean;
/**
* A basket tag that outputs a small basket and a link to the full basket website.
}
// Get application bean from session
- PizzaBean bean = (PizzaBean) this.getBasket().getSession().getAttribute("controller"); //NOI18N
+ ShopSessionBeanRemote bean = (ShopSessionBeanRemote) this.getBasket().getSession().getAttribute("controller"); //NOI18N
// Debug log
this.LOG.debug(MessageFormat.format("bean={0}", bean)); //NOI18N