]> git.mxchange.org Git - pizzaservice-war.git/blobdiff - src/java/org/mxchange/pizzaapplication/database/frontend/product/PizzaProductDatabaseFrontend.java
Added important TODO to handle insert result
[pizzaservice-war.git] / src / java / org / mxchange / pizzaapplication / database / frontend / product / PizzaProductDatabaseFrontend.java
index 452c0d52ada5b49938e543aa582fdba8af949aca..8ac757b2c3340bfcc2b1ea9ceb444a16be313684 100644 (file)
@@ -59,6 +59,54 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                this.initBackend();
        }
 
+       /**
+        * Adds product to database by given title, price and category id
+        * @param title Product title
+        * @param price Product price
+        * @param category Product category id
+        * @param available Availability of product (selectable by customer)
+        * @throws java.sql.SQLException If any SQL errors occur
+        */
+       @Override
+       public void addProduct (final String title, final Float price, final Long category, final Boolean available) throws SQLException, IOException {
+               // Trace message
+               this.getLogger().trace(MessageFormat.format("title={0},price={1},category={2} - CALLED!", title, price, category)); //NOI18N
+               
+               // Title should not be null
+               if (title == null) {
+                       // Abort here
+                       throw new NullPointerException("title is null"); //NOI18N
+               } else if (price == null) {
+                       // Abort here
+                       throw new NullPointerException("price is null"); //NOI18N
+               } else if (category == null) {
+                       // Abort here
+                       throw new NullPointerException("category is null"); //NOI18N
+               } else if (available == null) {
+                       // Abort here
+                       throw new NullPointerException("available is null"); //NOI18N
+               }
+               
+               // Clear dataset from previous usage
+               this.clearDataSet();
+               
+               // Add title and parent
+               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_TITLE, title);
+               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_PRICE, price);
+               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_CATEGORY, category);
+               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_AVAILABLE, available);
+               
+               // Handle this over to the backend
+               // @todo Nothing is done yet!
+               Result<? extends Storeable> result = this.doInsertDataSet();
+               
+               // Debug message
+               this.getLogger().debug(MessageFormat.format("result={0}", result)); //NOI18N
+               
+               // Trace message
+               this.getLogger().trace("EXIT!"); //NOI18N
+       }
+
        /**
         * Shuts down the database layer
         * 
@@ -106,18 +154,23 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                return v;
        }
 
+       /**
+        * An iterator on all products
+        *
+        * @return Iterator on all products
+        * @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 errors occur
+        */
        @Override
        @SuppressWarnings ("unchecked")
-       public Iterator<Product> getAvailableProducts () throws IOException, BadTokenException, SQLException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+       public Iterator<Product> getAllProducts () throws IOException, BadTokenException, SQLException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
                // Trace message
                this.getLogger().trace("CALLED!"); //NOI18N
 
                // Instance search criteria
                SearchableCriteria critera = new SearchCriteria();
 
-               // Add criteria
-               critera.addCriteria(PizzaProductDatabaseConstants.COLUMN_AVAILABLE, true);
-
                // Run the query
                Result<? extends Storeable> result = this.getBackend().doSelectByCriteria(critera);
 
@@ -134,23 +187,18 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                return (Iterator<Product>) iterator;
        }
 
-       /**
-        * An iterator on all products
-        *
-        * @return Iterator on all products
-        * @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 errors occur
-        */
        @Override
        @SuppressWarnings ("unchecked")
-       public Iterator<Product> getAllProducts () throws IOException, BadTokenException, SQLException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+       public Iterator<Product> getAvailableProducts () throws IOException, BadTokenException, SQLException, CorruptedDatabaseFileException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
                // Trace message
                this.getLogger().trace("CALLED!"); //NOI18N
 
                // Instance search criteria
                SearchableCriteria critera = new SearchCriteria();
 
+               // Add criteria
+               critera.addCriteria(PizzaProductDatabaseConstants.COLUMN_AVAILABLE, true);
+               
                // Run the query
                Result<? extends Storeable> result = this.getBackend().doSelectByCriteria(critera);
 
@@ -167,6 +215,12 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                return (Iterator<Product>) iterator;
        }
 
+       @Override
+       public String getIdName () {
+               // Return column id
+               return PizzaProductDatabaseConstants.COLUMN_ID;
+       }
+
        /**
         * Gets a Result back from given ResultSet instance
         *
@@ -214,6 +268,11 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                return result;
        }
 
+       @Override
+       public Storeable getStoreableAtRow (final int rowIndex) {
+               throw new UnsupportedOperationException("Not supported yet: rowIndex=" + rowIndex);
+       }
+
        /**
         * Checks wether the given product title is already used.
         *
@@ -253,53 +312,6 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                return isFound;
        }
 
-       /**
-        * Adds product to database by given title, price and category id
-        * @param title Product title
-        * @param price Product price
-        * @param category Product category id
-        * @param available Availability of product (selectable by customer)
-        * @throws java.sql.SQLException If any SQL errors occur
-        */
-       @Override
-       public void addProduct (final String title, final Float price, final Long category, final Boolean available) throws SQLException, IOException {
-               // Trace message
-               this.getLogger().trace(MessageFormat.format("title={0},price={1},category={2} - CALLED!", title, price, category)); //NOI18N
-
-               // Title should not be null
-               if (title == null) {
-                       // Abort here
-                       throw new NullPointerException("title is null"); //NOI18N
-               } else if (price == null) {
-                       // Abort here
-                       throw new NullPointerException("price is null"); //NOI18N
-               } else if (category == null) {
-                       // Abort here
-                       throw new NullPointerException("category is null"); //NOI18N
-               } else if (available == null) {
-                       // Abort here
-                       throw new NullPointerException("available is null"); //NOI18N
-               }
-
-               // Clear dataset from previous usage
-               this.clearDataSet();
-
-               // Add title and parent
-               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_TITLE, title);
-               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_PRICE, price);
-               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_CATEGORY, category);
-               this.addToDataSet(PizzaProductDatabaseConstants.COLUMN_AVAILABLE, available);
-
-               // Handle this over to the backend
-               Result<? extends Storeable> result = this.doInsertDataSet();
-
-               // Debug message
-               this.getLogger().debug(MessageFormat.format("result={0}", result)); //NOI18N
-
-               // Trace message
-               this.getLogger().trace("EXIT!"); //NOI18N
-       }
-
        /**
         * Converts the given map into a Storeable instance, depending on which class implements it. All
         * keys are being interpreted as class fields/attributes and their respective setters are being searched for. As
@@ -349,10 +361,4 @@ public class PizzaProductDatabaseFrontend extends BaseDatabaseFrontend implement
                // Return it
                return instance;
        }
-
-       @Override
-       public String getIdName () {
-               // Return column id
-               return PizzaProductDatabaseConstants.COLUMN_ID;
-       }
 }