From: Roland Haeder Date: Fri, 4 Sep 2015 21:41:39 +0000 (+0200) Subject: Now an empty library, but it will come back ... ;-) X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=f34d19daf0fb0888c0eb000af0292372c3522b98;p=pizzaservice-lib.git Now an empty library, but it will come back ... ;-) Signed-off-by:Roland Häder --- diff --git a/lib/jshop-core.jar b/lib/jshop-core.jar new file mode 100644 index 0000000..4f792b8 Binary files /dev/null and b/lib/jshop-core.jar differ diff --git a/nbproject/project.properties b/nbproject/project.properties index 6c7a429..04253c7 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -33,6 +33,7 @@ excludes= file.reference.cdi-api.jar=lib/cdi-api.jar file.reference.jcore.jar=lib/jcore.jar file.reference.jsfcore.jar=lib/jsfcore.jar +file.reference.jshop-core.jar=lib/jshop-core.jar file.reference.jshop.jar=lib/jshop.jar file.reference.log4j-api-2.3.jar=lib/log4j-api-2.3.jar file.reference.log4j-core-2.3.jar=lib/log4j-core-2.3.jar @@ -47,7 +48,8 @@ javac.classpath=\ ${libs.javaee-api-7.0.classpath}:\ ${file.reference.log4j-api-2.3.jar}:\ ${file.reference.log4j-core-2.3.jar}:\ - ${file.reference.cdi-api.jar} + ${file.reference.cdi-api.jar}:\ + ${file.reference.jshop-core.jar} # Space-separated list of extra javac options javac.compilerargs=-Xlint:unchecked -Xlint:deprecation javac.deprecation=true @@ -101,6 +103,7 @@ run.test.classpath=\ source.encoding=UTF-8 source.reference.jcore.jar=../jcore/src/ source.reference.jsfcore.jar=../jsfcore/src/ +source.reference.jshop-core.jar=../jshop-core/src/ source.reference.jshop.jar=../jshop/src/ src.dir=src test.src.dir=test diff --git a/src/org/mxchange/pizzaapplication/application/PizzaApplication.java b/src/org/mxchange/pizzaapplication/application/PizzaApplication.java deleted file mode 100644 index 878637f..0000000 --- a/src/org/mxchange/pizzaapplication/application/PizzaApplication.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * 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 . - */ -package org.mxchange.pizzaapplication.application; - -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.sql.SQLException; -import java.util.Deque; -import java.util.Iterator; -import org.mxchange.jcore.application.Application; -import org.mxchange.jshop.category.Category; -import org.mxchange.jshop.exceptions.CategoryTitleAlreadyUsedException; -import org.mxchange.jshop.exceptions.ProductTitleAlreadyUsedException; -import org.mxchange.jshop.item.AddableBasketItem; -import org.mxchange.jshop.product.Product; - -/** - * - * @author Roland Haeder - */ -public interface PizzaApplication extends Application { - /** - * Some "getter" for a linked list of only available products - * - * @return Only available products - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Deque getAvailableProducts () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * Some "getter" for a linked list of all products - * - * @return All products - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Deque getAllProducts () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * Some "getter" for a linked list of all categories - * - * @return All categories - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Deque getAllCategories () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * Initializes this instance with given ServletContext - * - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.io.IOException If an IO error occurs - */ - public void init () throws SQLException, IOException; - - /** - * Some "getter" for a an array of only available products - * - * @return Only available products - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Iterator getAvailableProductsIterator () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * Some "getter" for a an array of all products - * - * @return All products - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Iterator getAllProductsIterator () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * Some "getter" for a an array of all categories - * - * @return All categories - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Iterator getAllCategoriesIterator () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * 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 getPrintableProductAvailability (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.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - * @deprecated Old lost code - */ - @Deprecated - public String getPrintableProductCategory (final Product product) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; - - /** - * Adds given category data from request to database - * - * @param category Category to be added - * @throws org.mxchange.jshop.exceptions.CategoryTitleAlreadyUsedException The category's title is already used - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public void doAdminAddCategory (final Category category) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, CategoryTitleAlreadyUsedException; - - /** - * Adds given product data from request to database - * - * @param product Product instance to add - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - * @throws org.mxchange.jshop.exceptions.ProductTitleAlreadyUsedException If the product's title is already used - */ - public void doAdminAddProduct (final Product product) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, ProductTitleAlreadyUsedException; - - /** - * Handles admin product form requests - * - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - * @throws org.mxchange.jshop.exceptions.ProductTitleAlreadyUsedException If the product's title is already used - * @deprecated Old lost code - */ - @Deprecated - public void doAdminHandleProductForms () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, ProductTitleAlreadyUsedException; - - /** - * Handles admin category form requests - * - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - * @throws org.mxchange.jshop.exceptions.CategoryTitleAlreadyUsedException The category's title is already used - * @deprecated Old lost code - */ - @Deprecated - public void doAdminHandleCategoryForms () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, CategoryTitleAlreadyUsedException; - - /** - * Some "getter" for a Product instance from given item - * - * @param item Item instance - * @return A Product instance - * @throws java.io.IOException If an IO error occurs - * @throws java.sql.SQLException If an SQL error occurs - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed publicly - * @throws java.lang.reflect.InvocationTargetException If something else happens? - */ - public Product getProduct (final AddableBasketItem item) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException; -} diff --git a/src/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java b/src/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java deleted file mode 100644 index 0bcf99b..0000000 --- a/src/org/mxchange/pizzaapplication/application/PizzaServiceApplication.java +++ /dev/null @@ -1,399 +0,0 @@ -/* - * 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 . - */ -package org.mxchange.pizzaapplication.application; - -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.sql.SQLException; -import java.text.MessageFormat; -import java.util.Deque; -import java.util.Iterator; -import org.mxchange.jcore.BaseFrameworkSystem; -import org.mxchange.jshop.category.Category; -import org.mxchange.jshop.exceptions.CategoryTitleAlreadyUsedException; -import org.mxchange.jshop.exceptions.ProductTitleAlreadyUsedException; -import org.mxchange.jshop.item.AddableBasketItem; -import org.mxchange.jshop.product.Product; - -/** - * Main application class - * - * @author Roland Haeder - */ -public class PizzaServiceApplication extends BaseFrameworkSystem implements PizzaApplication { - /** - * Default constructor - */ - public PizzaServiceApplication () { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - } - - @Override - public Deque getAllCategories () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Deligate to frontend - return this.categoryFrontend.getAllCategories(); - } - - @Override - public Deque getAllProducts () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Deligate to frontend - return this.productFrontend.getAllProducts(); - } - - @Override - public Deque getAvailableProducts () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Deligate to frontend - return this.productFrontend.getAllAvailableProducts(); - } - - @Override - public void init () throws SQLException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - - // Is the bundle initialized? - if (!BaseFrameworkSystem.isBundledInitialized()) { - // Temporary initialize default bundle - // TODO The enum Gender uses this - this.initBundle(); - } - - // Trace message - this.getLogger().trace("EXIT!"); //NOI18N - } - - @Override - public void doBootstrap () { - throw new UnsupportedOperationException("Not supported yet."); //NOI18N - } - - @Override - public void doMainLoop () { - throw new UnsupportedOperationException("Not supported yet."); //NOI18N - } - - @Override - public void doShutdown () { - throw new UnsupportedOperationException("Not supported yet."); //NOI18N - } - - @Override - @Deprecated - public String getPrintableProductAvailability (final Product product) { - // Trace message - this.getLogger().trace(MessageFormat.format("product={0} - CALLED!", product)); //NOI18N - - // Is it null? - if (null == product) { - // Should not be null - throw new NullPointerException("product is null"); //NOI18N - } - - // Get availability - if (product.getAvailable() == true) { - // Is available - return "Ja"; - } else { - // Not, not for public - return "Nein"; - } - } - - @Override - @SuppressWarnings ("unchecked") - public Iterator getAvailableProductsIterator () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - - // Ask frontend for a list of products - return this.productFrontend.getAvailableProductsIterator(); - } - - @Override - @SuppressWarnings ("unchecked") - public Iterator getAllProductsIterator () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - - // Ask frontend for a list of products - return this.productFrontend.getAllProductsIterator(); - } - - @Override - @SuppressWarnings ("unchecked") - public Iterator getAllCategoriesIterator () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - - // Ask frontend for a list of categories - return this.categoryFrontend.getAllCategoriesIterator(); - } - - /** - * Checks whether given category title is already used - * - * @param category Category instance - * @return Whether it has been found - */ - private boolean isCategoryTitleUsed(final Category category) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - - // Delegate to frontend - return this.categoryFrontend.isCategoryTitleUsed(category.getTitle()); - } - - /** - * Checks if given product title is already used - * @param title Product title to check - * @return Whether the product title has already been used - */ - private boolean isProductTitleUsed (final String title) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - // Trace message - this.getLogger().trace("CALLED!"); //NOI18N - - // Delegate to frontend - return this.productFrontend.isProductTitleUsed(title); - } - - @Override - public void doAdminAddCategory (final Category category) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, CategoryTitleAlreadyUsedException { - // Trace message - this.getLogger().trace(MessageFormat.format("category={0} - CALLED!", category)); //NOI18N - - // request must not be null - if (null == category) { - // Is null - throw new NullPointerException("category is null"); //NOI18N - } - - // Get all fields - String title = category.getTitle(); - Long parentId = category.getParentId(); - - // Debug message - this.getLogger().debug(MessageFormat.format("title={0},parentId={1}", title, parentId)); //NOI18N - - // Check all fields - if (null == title) { - // "title" not set - throw new IllegalArgumentException("category title is not set."); //NOI18N - } else if (title.isEmpty()) { - // Is left empty - throw new IllegalArgumentException("category title is empty."); //NOI18N - } else if ((parentId == null) || (parentId == 0)) { - // "parent" is not set - throw new IllegalArgumentException(MessageFormat.format("category id is not valid: {0}", parentId)); - } - - // Try to check if title is used already - if (this.isCategoryTitleUsed(category)) { - // Title already used - throw new CategoryTitleAlreadyUsedException(category); - } - - // The category is not found, so add it to database - this.categoryFrontend.addCategory(title, parentId); - - // Trace message - this.getLogger().trace("EXIT!"); //NOI18N - } - - @Override - public void doAdminAddProduct (final Product product) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, ProductTitleAlreadyUsedException { - // Trace message - this.getLogger().trace(MessageFormat.format("product={0} - CALLED!", product)); //NOI18N - - // product must not be null - if (null == product) { - // Is null - throw new NullPointerException("product is null"); //NOI18N - } - - // Get title, price and category id - String title = product.getTitle(); - Float price = product.getPrice(); - Long categoryId = product.getCategoryId(); - Boolean available = product.getAvailable(); - - // Debug message - this.getLogger().debug(MessageFormat.format("title={0},price={1},categoryId={2},available={3}", title, price, categoryId, available)); //NOI18N - - // Check all fields - if (null == title) { - // "title" not set - throw new IllegalArgumentException("product title is not set."); //NOI18N - } else if (title.isEmpty()) { - // Is left empty - throw new IllegalArgumentException("product title is empty."); //NOI18N - } else if (null == price) { - // "price" not set - throw new IllegalArgumentException("product price is not set."); //NOI18N - } else if (null == categoryId) { - // "categoryId" not set - throw new IllegalArgumentException("product category id is not set."); //NOI18N - } else if (null == available) { - // "available" not set - throw new IllegalArgumentException("product availability is not set."); //NOI18N - } - - // Try to check if title is used already - if (this.isProductTitleUsed(product)) { - // Title already used - throw new ProductTitleAlreadyUsedException(product); - } - - // The product is not found, so add it to database - this.productFrontend.addProduct(title, price, categoryId, available); - - // Trace message - this.getLogger().trace("EXIT!"); //NOI18N - } - - @Override - @Deprecated - public String generateLinkForParent (final Category category) { - // Trace message - this.getLogger().trace(MessageFormat.format("category={0} - CALLED!", category)); //NOI18N - - // category must not be null - if (null == category) { - // Is null - throw new NullPointerException("category is null"); //NOI18N - } - - // Get parent id - Long parentId = category.getParentId(); - - // Is the id set? - if (parentId > 0) { - // Product HTML code for link - throw new UnsupportedOperationException(MessageFormat.format("parentId={0} - Unfinished!", parentId)); //NOI18N - } - - // No parent set - return "Keine"; - } - - @Override - @Deprecated - public String getPrintableProductCategory (final Product product) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Trace message - this.getLogger().trace(MessageFormat.format("product={0} - CALLED!", product)); //NOI18N - - // product must not be null - if (null == product) { - // Abort here - throw new NullPointerException("product is null"); //NOI18N - } - - // Declare category - Category category = this.categoryFrontend.getCategory(product); - - // Debug message - this.getLogger().debug(MessageFormat.format("category={0}", category)); //NOI18N - - // Get decoded title - String title = category.getDecodedTitle(); - - // Trace message - this.getLogger().trace(MessageFormat.format("title={0} - EXIT!", title)); //NOI18N - - // Return it - return title; - } - - /** - * Checks if product's title is already used. - * - * @param request Request instance - * @return Whether the product title is already used - * @throws java.io.IOException If any IO error occurs - * @throws org.mxchange.jcore.exceptions.BadTokenException If a bad token was found in a file-based database backend's file ... ;-) - * @throws java.sql.SQLException If any SQL error occurs - * @throws org.mxchange.jcore.exceptions.CorruptedDatabaseFileException If the database file is damaged - * @throws java.lang.NoSuchMethodException If a method was not found - * @throws java.lang.IllegalAccessException If the method cannot be accessed - * @throws java.lang.reflect.InvocationTargetException Any other problems? - */ - private boolean isProductTitleUsed (final Product product) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - // Trace message - this.getLogger().trace(MessageFormat.format("product={0} - CALLED!", product)); //NOI18N - - // request must not be null and "title" must be found and non-empty - if (null == product) { - // Abort here - throw new NullPointerException("request is null"); //NOI18N - } - - // Init title - String title = product.getTitle(); - - if (null == title) { - // title is not set - throw new IllegalArgumentException("product title is not set."); //NOI18N - } else if (title.isEmpty()) { - // Is left empty - throw new IllegalArgumentException("product title is empty."); //NOI18N - } - - // Default is not used - boolean isUsed = this.isProductTitleUsed(title); - - // Trace message - this.getLogger().trace(MessageFormat.format("isUsed={0} - EXIT!", isUsed)); //NOI18N - - // Return it - return isUsed; - } - - @Override - @Deprecated - public void doAdminHandleProductForms () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, ProductTitleAlreadyUsedException { - // Deprecated method called - throw new UnsupportedOperationException("Deprecated method has been called."); - } - - @Override - @Deprecated - public void doAdminHandleCategoryForms () throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, CategoryTitleAlreadyUsedException { - // Deprecated method called - throw new UnsupportedOperationException("Deprecated method has been called."); - } - - @Override - public Product getProduct (final AddableBasketItem item) throws IOException, SQLException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { - // Trace message - this.getLogger().trace(MessageFormat.format("item={0} - CALLED!", item)); //NOI18N - - // item should not be null - if (null == item) { - // Abort here - throw new NullPointerException("item is null"); //NOI18N - } - - // Init product instance - Product product = this.productFrontend.getProduct(item); - - // Trace message - this.getLogger().trace(MessageFormat.format("product={0} - EXIT!", product)); //NOI18N //NOI18N - - // Return it - return product; - } -}