From 4ddd0b27ca287571cfca51b38fc4d56656a2f6a6 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Sat, 12 Mar 2016 18:08:52 +0100 Subject: [PATCH] Continued a bit: - added ifUserExists() - rewrote enqueueEmailAddressForChange() which now takes ChangeableEmailAddress as instance - also rewrote updateEmailAddress() with same parameter - added isEmailAddressEnqueued() - updated jar(s) --- lib/juser-core.jar | Bin 37613 -> 38450 bytes lib/juser-lib.jar | Bin 4887 -> 5111 bytes .../email_address/EmailChangeSessionBean.java | 89 ++++++++++++------ .../jusercore/model/user/UserSessionBean.java | 52 +++++++++- 4 files changed, 113 insertions(+), 28 deletions(-) diff --git a/lib/juser-core.jar b/lib/juser-core.jar index 8488d71d29bac0c83be02e3c7e5e3129e0b51f47..1924b0bcb057c30248932d2d3e5063b69db3e4ce 100644 GIT binary patch delta 3979 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 diff --git a/lib/juser-lib.jar b/lib/juser-lib.jar index dd11c240493a216c77ed2b313e537ab78f64da1e..d70697aaa2ef33810501b060d2c314cca0e8cf1f 100644 GIT binary patch delta 663 zcmZXR&ubGw6vyApZnE3m&Hge;qeilzv?kEsEV?--r3mukU;B`NXeDYq71U27nIm zZLne0=xDHU@)gEU0mdCv_yn0ktdLWPXJi)fnVdre^a3KHXYJ7-X&GkbLyH2mDBq?x zuH`lGH1IVzK%f|>%}y96(^1r8Y1-_r^;w@q1Paypd*Oqyo`l`i`jz!w++96gyH21K zCdp;FXZHw8r_=d3UFTKvDEF)yFDVsrk-yd}{J3iuXYPs%Sa>^O|GvX-DLZXdC7?nE zKrjm$5X=}TjET7crqnH@&~h@`;0R{LP8Z;Bl}3Z%6V+Bk%EL`fS3Jyl@?+u6V+8>J zGrUd%{$3yBUyQ&wqQM~z4r@>z8fJ&&toY8=l=YeqMG`6B)Ek9-oT9Q2cGwbI6Ef?u zX!y=LL5RV>=2+d6-tth8u8J~_LuuFBLG(swUfJs*@7uCT+xB^E%TK$3IOa(4rZa=H zEoTn#!&yeO+)IcT?h@j=yYPP>=e!QCy!Fboo#72y;Z8Q-PkkTNnqQ_Xx=^e9zCRW0 hD~Is8_ia65rabZk@+>JJHb@b1LKYFP#6_g(JfcqLtU-Ne$!UMJI|QIZ_$}SkEd~aIAOn-% zNEu!+r+8HUC{USz3;_T^1ql?GUsccq6(AtG`rVvY3s{nH@*1itnP_$YwlUF?09t&{ zSkWB@V+@iEQr@%CBz)gY@NLcYuFVu78o#r)axvdw#IJEk{P>Kb51}z>I0n8RDvCMq zqfiNxJ%y$bvh9a=?FGCY+RKPXyM~wyR}j15HN-=B_5UdHktQl<5r-bgylaeeiz@s@ zN%B@Sf{GS(=rQw^3e|W?&!Ce26H`Q;6+I8vRrf*{AKZAg98mDl68l^RXjpjr2C3$E A2><{9 diff --git a/src/java/org/mxchange/jusercore/model/email_address/EmailChangeSessionBean.java b/src/java/org/mxchange/jusercore/model/email_address/EmailChangeSessionBean.java index 2eddde8..a049514 100644 --- a/src/java/org/mxchange/jusercore/model/email_address/EmailChangeSessionBean.java +++ b/src/java/org/mxchange/jusercore/model/email_address/EmailChangeSessionBean.java @@ -17,11 +17,13 @@ package org.mxchange.jusercore.model.email_address; import java.text.MessageFormat; +import java.util.List; import javax.ejb.EJB; import javax.ejb.Stateless; +import javax.persistence.NoResultException; import javax.persistence.PersistenceException; +import javax.persistence.Query; import org.mxchange.jcoreee.database.BaseDatabaseBean; -import org.mxchange.jusercore.model.user.User; import org.mxchange.jusercore.model.user.UserSessionBeanRemote; /** @@ -32,6 +34,7 @@ import org.mxchange.jusercore.model.user.UserSessionBeanRemote; @Stateless (name = "email-change", mappedName = "ejb/stateless-addressbook-email-change", description = "A bean handling email changes") public class EmailChangeSessionBean extends BaseDatabaseBean implements EmailChangeSessionBeanRemote { + /** * Serial number */ @@ -50,52 +53,84 @@ public class EmailChangeSessionBean extends BaseDatabaseBean implements EmailCha } @Override - public void enqueueEmailAddressForChange (final User user) { + public List allQueuedAddressesAsList () { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + @Override + public void enqueueEmailAddressForChange (final ChangeableEmailAddress emailAddress) { // Trace message - this.getLoggerBeanLocal().logTrace(MessageFormat.format("enqueueEmailAddressForChange: user={0} - CALLED!", user)); + this.getLoggerBeanLocal().logTrace(MessageFormat.format("enqueueEmailAddressForChange: emailAddress={0} - CALLED!", emailAddress)); // user should not be null - if (null == user) { + if (null == emailAddress) { // Abort here - throw new NullPointerException("user is null"); //NOI18N - } else if (user.getUserId() == null) { + throw new NullPointerException("emailAddress is null"); //NOI18N + } else if (emailAddress.getEmailChangeId() == null) { // Throw NPE again - throw new NullPointerException("user.userId is null"); //NOI18N - } else if (user.getUserId() < 1) { + throw new NullPointerException("emailAddress.emailChangeId is null"); //NOI18N + } else if (emailAddress.getEmailChangeId() < 1) { // Not valid - throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is not valid.", user.getUserId())); //NOI18N - } else if (user.getUserAccountStatus() == null) { - // Throw NPE again - throw new NullPointerException("user.userAccountStatus is null"); //NOI18N - } else if (!this.userBean.ifUserIdExists(user.getUserId())) { + throw new IllegalArgumentException(MessageFormat.format("emailAddress.emailChangeId={0} is not valid.", emailAddress.getEmailChangeId())); //NOI18N + } else if (!this.userBean.ifUserExists(emailAddress.getEmailChangeUser())) { // User does not exist - throw new PersistenceException(MessageFormat.format("User with id {0} does not exist.", user.getUserId())); //NOI18N + throw new PersistenceException(MessageFormat.format("Email change with id {0} does not exist.", emailAddress.getEmailChangeId())); //NOI18N } throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override - public void updateEmailAddress (final User user) { + public boolean isEmailAddressEnqueued (final String emailAddress) { + // Trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("isEmailAddressEnqueued: emailAddress={0} - CALLED!", emailAddress)); //NOI18N + + // Create query instance + Query query = this.getEntityManager().createNamedQuery("SearchEmailChangeByEmail"); //NOI18N + + // Add email address as parameter + query.setParameter("email", emailAddress); //NOI18N + + // Initialize variable + boolean isFound = false; + + // Try it + try { + // Try to get single result + ChangeableEmailAddress dummy = (ChangeableEmailAddress) query.getSingleResult(); + + // Found it + isFound = true; + } catch (final NoResultException ex) { + // Log it + this.getLoggerBeanLocal().logException(ex); + } + + // Trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("isEmailAddressEnqueued: isFound={0} - EXIT!", isFound)); //NOI18N + + // Return it + return isFound; + } + + @Override + public void updateEmailAddress (final ChangeableEmailAddress emailAddress) { // Trace message - this.getLoggerBeanLocal().logTrace(MessageFormat.format("updateEmailAddress: user={0} - CALLED!", user)); + this.getLoggerBeanLocal().logTrace(MessageFormat.format("updateEmailAddress: emailAddress={0} - CALLED!", emailAddress)); // user should not be null - if (null == user) { + if (null == emailAddress) { // Abort here - throw new NullPointerException("user is null"); //NOI18N - } else if (user.getUserId() == null) { + throw new NullPointerException("emailAddress is null"); //NOI18N + } else if (emailAddress.getEmailChangeId() == null) { // Throw NPE again - throw new NullPointerException("user.userId is null"); //NOI18N - } else if (user.getUserId() < 1) { + throw new NullPointerException("emailAddress.emailChangeId is null"); //NOI18N + } else if (emailAddress.getEmailChangeId() < 1) { // Not valid - throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is not valid.", user.getUserId())); //NOI18N - } else if (user.getUserAccountStatus() == null) { - // Throw NPE again - throw new NullPointerException("user.userAccountStatus is null"); //NOI18N - } else if (!this.userBean.ifUserIdExists(user.getUserId())) { + throw new IllegalArgumentException(MessageFormat.format("emailAddress.emailChangeId={0} is not valid.", emailAddress.getEmailChangeId())); //NOI18N + } else if (!this.userBean.ifUserExists(emailAddress.getEmailChangeUser())) { // User does not exist - throw new PersistenceException(MessageFormat.format("User with id {0} does not exist.", user.getUserId())); //NOI18N + throw new PersistenceException(MessageFormat.format("Email change with id {0} does not exist.", emailAddress.getEmailChangeId())); //NOI18N } throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. diff --git a/src/java/org/mxchange/jusercore/model/user/UserSessionBean.java b/src/java/org/mxchange/jusercore/model/user/UserSessionBean.java index 4795d84..59fe23a 100644 --- a/src/java/org/mxchange/jusercore/model/user/UserSessionBean.java +++ b/src/java/org/mxchange/jusercore/model/user/UserSessionBean.java @@ -159,6 +159,56 @@ public class UserSessionBean extends BaseDatabaseBean implements UserSessionBean return userNameList; } + @Override + public boolean ifUserExists (final User user) { + // Trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("ifUserExists: user={0} - CALLED!", user)); //NOI18N + + // userId should not be null + if (null == user) { + // Abort here + throw new NullPointerException("user is null"); //NOI18N + } else if (user.getUserId() == null) { + // Abort here + throw new NullPointerException("user.userId is null"); //NOI18N + } else if (user.getUserId() < 1) { + // Invalid number + throw new IllegalArgumentException(MessageFormat.format("userId is not valid: {0}", user.getUserId())); //NOI18N + } + + // Generate query + Query query = this.getEntityManager().createNamedQuery("SearchUser", LoginUser.class); //NOI18N + + // Set parameter + query.setParameter("user", user); //NOI18N + + // Try this + try { + User dummy = (User) query.getSingleResult(); + + // Debug message + this.getLoggerBeanLocal().logDebug(MessageFormat.format("ifUserExists: dummy.id={0} found.", dummy.getUserId())); //NOI18N + } catch (final NoResultException ex) { + // Log it + this.getLoggerBeanLocal().logDebug(MessageFormat.format("ifUserExists: getSingleResult() returned no result: {0}", ex)); //NOI18N + + // User name does not exist + return false; + } catch (final PersistenceException ex) { + // Something bad happened + this.getLoggerBeanLocal().logWarning(MessageFormat.format("More than one user {0} found.", user, ex)); //NOI18N + + // Throw again + throw ex; + } + + // Trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("ifUserExists: Found user {0} - EXIT!", user)); //NOI18N + + // Found it + return true; + } + @Override public boolean ifUserIdExists (final Long userId) { // Trace message @@ -306,7 +356,7 @@ public class UserSessionBean extends BaseDatabaseBean implements UserSessionBean } else if (user.getUserAccountStatus() == null) { // Throw NPE again throw new NullPointerException("user.userAccountStatus is null"); //NOI18N - } else if (!this.ifUserIdExists(user.getUserId())) { + } else if (!this.ifUserExists(user)) { // User does not exist throw new PersistenceException(MessageFormat.format("User with id {0} does not exist.", user.getUserId())); //NOI18N } -- 2.39.5