]> git.mxchange.org Git - pizzaservice-ejb.git/blobdiff - src/java/org/mxchange/jusercore/model/user/email_address/PizzaUserEmailChangeSessionBean.java
Please cherry-pick:
[pizzaservice-ejb.git] / src / java / org / mxchange / jusercore / model / user / email_address / PizzaUserEmailChangeSessionBean.java
index eb8530e1e3c78ae7a55ec6ecbb3bc92089deae00..7b09b745505257aa412dd19b7faeec93e9e586f8 100644 (file)
@@ -57,25 +57,6 @@ public class PizzaUserEmailChangeSessionBean extends BasePizzaEnterpriseBean imp
                super("jms/pizzaservice-queue-factory", "jms/pizzaservice-email-queue"); //NOI18N
        }
 
-       @Override
-       @SuppressWarnings ("unchecked")
-       public List<String> allQueuedAddresses () {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allQueuedAddresses: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get named query
-               final Query query = this.getEntityManager().createNamedQuery("AllEmailAddressChanges", String.class); //NOI18N
-
-               // Get all entries
-               final List<String> emailAddresses = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allQueuedAddresses: emailAddresses.size()={1} - EXIT!", this.getClass().getSimpleName(), emailAddresses.size())); //NOI18N
-
-               // Return it
-               return emailAddresses;
-       }
-
        @Override
        public void enqueueEmailAddressForChange (final ChangeableEmailAddress emailChange, final String baseUrl) {
                // Trace message
@@ -94,9 +75,6 @@ public class PizzaUserEmailChangeSessionBean extends BasePizzaEnterpriseBean imp
                } else if (emailChange.getEmailChangeUser().getUserId() < 1) {
                        // Not valid id
                        throw new IllegalArgumentException(MessageFormat.format("emailChange.emailChangeUser.userId={0} is invalid.", emailChange.getEmailChangeUser().getUserId())); //NOI18N
-               } else if (!this.userBean.ifUserExists(emailChange.getEmailChangeUser())) {
-                       // User does not exist
-                       throw new EJBException(MessageFormat.format("Email change with id {0} does not exist.", emailChange.getEmailChangeId())); //NOI18N
                } else if (emailChange.getEmailAddress().trim().isEmpty()) {
                        // Email address is empty
                        throw new IllegalArgumentException("emailChange.emaiLAddress is empty."); //NOI18N
@@ -122,36 +100,22 @@ public class PizzaUserEmailChangeSessionBean extends BasePizzaEnterpriseBean imp
        }
 
        @Override
-       public boolean isEmailAddressEnqueued (final String emailAddress) {
+       @SuppressWarnings ("unchecked")
+       public List<ChangeableEmailAddress> fetchAllQueuedAddressChanges () {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.isEmailAddressEnqueued: emailAddress={1} - CALLED!", this.getClass().getSimpleName(), emailAddress)); //NOI18N
-
-               // Create query instance
-               final Query query = this.getEntityManager().createNamedQuery("SearchEmailChangeByEmail"); //NOI18N
-
-               // Add email address as parameter
-               query.setParameter("email", emailAddress); //NOI18N
-
-               // Initialize variable
-               boolean isFound = false;
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allQueuedAddresses: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
-               // Try it
-               try {
-                       // Try to get single result
-                       final ChangeableEmailAddress dummy = (ChangeableEmailAddress) query.getSingleResult();
+               // Get named query
+               final Query query = this.getEntityManager().createNamedQuery("AllEmailAddressChanges", ChangeableEmailAddress.class); //NOI18N
 
-                       // Found it
-                       isFound = true;
-               } catch (final NoResultException ex) {
-                       // Log it
-                       this.getLoggerBeanLocal().logException(ex);
-               }
+               // Get all entries
+               final List<ChangeableEmailAddress> emailAddresses = query.getResultList();
 
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.isEmailAddressEnqueued: isFound={1} - EXIT!", this.getClass().getSimpleName(), isFound)); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allQueuedAddresses: emailAddresses.size()={1} - EXIT!", this.getClass().getSimpleName(), emailAddresses.size())); //NOI18N
 
                // Return it
-               return isFound;
+               return emailAddresses;
        }
 
        @Override
@@ -172,9 +136,6 @@ public class PizzaUserEmailChangeSessionBean extends BasePizzaEnterpriseBean imp
                } else if (emailAddress.getEmailAddress().trim().isEmpty()) {
                        // Email address is empty
                        throw new IllegalArgumentException("emailAddress.emaiLAddress is empty."); //NOI18N
-               } else if (!this.userBean.ifUserExists(emailAddress.getEmailChangeUser())) {
-                       // User does not exist
-                       throw new EJBException(MessageFormat.format("Email change with id {0} does not exist.", emailAddress.getEmailChangeId())); //NOI18N
                } else if (!this.isEmailAddressEnqueued(emailAddress.getEmailAddress())) {
                        // Email address is not enqueued
                        throw new EJBException(MessageFormat.format("Email address {0} is not enqueued.", emailAddress.getEmailAddress())); //NOI18N
@@ -234,4 +195,35 @@ public class PizzaUserEmailChangeSessionBean extends BasePizzaEnterpriseBean imp
                emailAddressChange.setEmailChangeHash(hash);
        }
 
+       /**
+        * Checks whether given email address is already enqueued
+        * <p>
+        * @param emailAddress Email address to check
+        * <p>
+        * @return Whether the email address has already been enqueued
+        */
+       private boolean isEmailAddressEnqueued (final String emailAddress) {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.isEmailAddressEnqueued: emailAddress={1} - CALLED!", this.getClass().getSimpleName(), emailAddress)); //NOI18N
+
+               // Default is not found
+               boolean isFound = false;
+
+               // Fetch all records
+               for (final ChangeableEmailAddress address : this.fetchAllQueuedAddressChanges()) {
+                       // Is it found?
+                       if (address.getEmailAddress().equals(emailAddress)) {
+                               // Yes, set flag, skip further iterations
+                               isFound = true;
+                               break;
+                       }
+               }
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.isEmailAddressEnqueued: isFound={1} - EXIT!", this.getClass().getSimpleName(), isFound)); //NOI18N
+
+               // Return it
+               return isFound;
+       }
+
 }