]> git.mxchange.org Git - addressbook-ejb.git/commitdiff
Please cherry-pick (when needed):
authorRoland Häder <roland@mxchange.org>
Thu, 27 Jul 2017 21:12:48 +0000 (23:12 +0200)
committerRoland Häder <roland@mxchange.org>
Fri, 28 Jul 2017 21:42:25 +0000 (23:42 +0200)
- duplicated BusinessDataSessionBean as (correctly) AdminBusinessDataSessionBean
- implemented generic business data EJB with first method which returns an
  entity for given id number or throws a proper exception if not found

Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/jcontactsbusiness/FinancialsAdminBusinessDataSessionBean.java [new file with mode: 0644]
src/java/org/mxchange/jcontactsbusiness/FinancialsBusinessDataSessionBean.java

diff --git a/src/java/org/mxchange/jcontactsbusiness/FinancialsAdminBusinessDataSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/FinancialsAdminBusinessDataSessionBean.java
new file mode 100644 (file)
index 0000000..e579e78
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontactsbusiness;
+
+import java.text.MessageFormat;
+import java.util.List;
+import javax.ejb.Stateless;
+import javax.persistence.Query;
+import org.mxchange.jfinancials.database.BaseFinancialsDatabaseBean;
+
+/**
+ * An administrative stateless session bean for business data
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Stateless (name = "adminBusinessData", description = "An administrative statless bean for handling business data (all)")
+public class FinancialsAdminBusinessDataSessionBean extends BaseFinancialsDatabaseBean implements BusinessDataAdminSessionBeanRemote {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 56_389_504_892_184_572L;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsAdminBusinessDataSessionBean () {
+               // Call super constructor
+               super();
+       }
+
+       @Override
+       @SuppressWarnings ("unchecked")
+       public List<BusinessBasicData> allBusinessContacts () {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allBusinessContacts: CALLED!", this.getClass().getSimpleName())); //NOI18N
+
+               // Get query
+               Query query = this.getEntityManager().createNamedQuery("AllBusinessData"); //NOI18N
+
+               // Get list from it
+               List<BusinessBasicData> list = query.getResultList();
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allBusinessContacts: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+
+               // Return it
+               return list;
+       }
+
+}
index be569fe9faacd7bb891b3aa0fcd037912c91ce9e..320e5732b6a5b2deb7ed3da345e5156b3701d558 100644 (file)
 package org.mxchange.jcontactsbusiness;
 
 import java.text.MessageFormat;
-import java.util.List;
 import javax.ejb.Stateless;
+import javax.persistence.NoResultException;
 import javax.persistence.Query;
+import org.mxchange.jcontactsbusiness.exceptions.BusinessDataNotFoundException;
 import org.mxchange.jfinancials.database.BaseFinancialsDatabaseBean;
 
 /**
@@ -27,8 +28,8 @@ import org.mxchange.jfinancials.database.BaseFinancialsDatabaseBean;
  * <p>
  * @author Roland Häder<roland@mxchange.org>
  */
-@Stateless (name = "adminBusinessData", description = "An administrative statless bean for handling business data (all)")
-public class FinancialsBusinessDataSessionBean extends BaseFinancialsDatabaseBean implements BusinessDataAdminSessionBeanRemote {
+@Stateless (name = "businessData", description = "A general statless bean for handling business data (all)")
+public class FinancialsBusinessDataSessionBean extends BaseFinancialsDatabaseBean implements BusinessDataSessionBeanRemote {
 
        /**
         * Serial number
@@ -44,22 +45,36 @@ public class FinancialsBusinessDataSessionBean extends BaseFinancialsDatabaseBea
        }
 
        @Override
-       @SuppressWarnings ("unchecked")
-       public List<BusinessBasicData> allBusinessContacts () {
+       public BusinessBasicData findBusinessDataById (final Long businessDataId) throws BusinessDataNotFoundException {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allBusinessContacts: CALLED!", this.getClass().getSimpleName())); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBusinessDataById: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
                // Get query
-               Query query = this.getEntityManager().createNamedQuery("AllBusinessData"); //NOI18N
+               Query query = this.getEntityManager().createNamedQuery("SearchBusinessDataById", CompanyBasicData.class); //NOI18N
 
-               // Get list from it
-               List<BusinessBasicData> list = query.getResultList();
+               // Set parameter
+               query.setParameter("businessDataId", businessDataId); //NOI18N
+
+               // Get single instance
+               BusinessBasicData businessData = null;
+
+               // Try to find a result
+               try {
+                       // Find a single result
+                       businessData = (BusinessBasicData) query.getSingleResult();
+
+                       // Log trace message
+                       this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBusinessDataById: Found contact={1}", this.getClass().getSimpleName(), businessData)); //NOI18N
+               } catch (final NoResultException ex) {
+                       // No result found
+                       throw new BusinessDataNotFoundException(businessDataId, ex);
+               }
 
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allBusinessContacts: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBusinessDataById: businessData={1} - EXIT!", this.getClass().getSimpleName(), businessData)); //NOI18N
 
                // Return it
-               return list;
+               return businessData;
        }
 
 }