X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjusercore%2Fmodel%2Fuser%2Femail_address%2FPizzaUserEmailChangeSessionBean.java;h=7b09b745505257aa412dd19b7faeec93e9e586f8;hb=66b338333804d0bdb33250d2c5a020435de714e6;hp=eb8530e1e3c78ae7a55ec6ecbb3bc92089deae00;hpb=aa89f017718e57eb00e42412068304eb35777bfc;p=pizzaservice-ejb.git diff --git a/src/java/org/mxchange/jusercore/model/user/email_address/PizzaUserEmailChangeSessionBean.java b/src/java/org/mxchange/jusercore/model/user/email_address/PizzaUserEmailChangeSessionBean.java index eb8530e..7b09b74 100644 --- a/src/java/org/mxchange/jusercore/model/user/email_address/PizzaUserEmailChangeSessionBean.java +++ b/src/java/org/mxchange/jusercore/model/user/email_address/PizzaUserEmailChangeSessionBean.java @@ -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 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 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 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 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 + *

+ * @param emailAddress Email address to check + *

+ * @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; + } + }