]> git.mxchange.org Git - juser-login-core.git/blobdiff - src/org/mxchange/jusercore/model/email_address/EmailAddressChange.java
ignored create-persistence-unit warning as no persistence.xml shall be created here...
[juser-login-core.git] / src / org / mxchange / jusercore / model / email_address / EmailAddressChange.java
index 492739ad47387169c04cff0decb0595db8b5214a..a7058545c12322ccf0801941f970f8be80f68e29 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 quix0r
+ * Copyright (C) 2016 Roland Haeder
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,9 +48,11 @@ import org.mxchange.jusercore.model.user.User;
 @NamedQueries (
                value = {
                        @NamedQuery (name = "SearchEmailChangeByEmail", query = "SELECT e FROM email_changes AS e WHERE LOWER(e.emailAddress) LIKE LOWER(:email)"),
-                       @NamedQuery (name = "AllEmailAddressChanges", query = "SELECT e.emailAddress FROM email_changes AS e ORDER BY e.emailChangeId ASC")
+                       @NamedQuery (name = "AllEmailAddressChanges", query = "SELECT e.emailAddress FROM email_changes AS e ORDER BY e.emailChangeId ASC"),
+                       @NamedQuery (name = "SearchEmailChangeByHash", query = "SELECT e FROM email_changes AS e WHERE e.emailChangeHash = :hash")
                }
 )
+@SuppressWarnings ("PersistenceUnitPresent")
 public class EmailAddressChange implements ChangeableEmailAddress {
 
        /**
@@ -93,7 +95,7 @@ public class EmailAddressChange implements ChangeableEmailAddress {
         */
        @Id
        @GeneratedValue (strategy = GenerationType.IDENTITY)
-       @Column (name = "email_change_id", length = 20, nullable = false, updatable = false)
+       @Column (name = "email_change_id", nullable = false, updatable = false)
        private Long emailChangeId;
 
        /**
@@ -120,20 +122,41 @@ public class EmailAddressChange implements ChangeableEmailAddress {
        }
 
        /**
-        * Constructor with user, email address and creation timestamp to set
+        * Constructor with all fields to set
         * <p>
+        * @param emailChangeId      Email change id
         * @param user               User instance
-        * @param emailAddress       Email address to queue
+        * @param emailAddress       Email address
         * @param emailChangeCreated Timestamp for creation
+        * @param emailChangeStatus  Email change status
+        * @param emailChangeDone    When this entry has been done
+        * @param emailChangeHash    Email change hash
         */
-       public EmailAddressChange (final User user, final String emailAddress, final Calendar emailChangeCreated) {
-               // Call super constructor
+       public EmailAddressChange (final Long emailChangeId, final User user, final String emailAddress, final Calendar emailChangeCreated, final EmailChangeStatus emailChangeStatus, final Calendar emailChangeDone, final String emailChangeHash) {
+               // Call other constructor
+               this(user, emailAddress);
+
+               // Set remaining
+               this.emailChangeId = emailChangeId;
+               this.emailChangeCreated = emailChangeCreated;
+               this.emailChangeStatus = emailChangeStatus;
+               this.emailChangeDone = emailChangeDone;
+               this.emailChangeHash = emailChangeHash;
+       }
+
+       /**
+        * Constructor with user and email address
+        * <p>
+        * @param user         User instance
+        * @param emailAddress Email address
+        */
+       public EmailAddressChange (final User user, final String emailAddress) {
+               // Call other constructor
                this();
 
                // Set all
-               this.emailAddress = emailAddress;
                this.emailChangeUser = user;
-               this.emailChangeCreated = emailChangeCreated;
+               this.emailAddress = emailAddress;
        }
 
        @Override