]> git.mxchange.org Git - jfinancials-lib.git/blobdiff - src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java
Continued:
[jfinancials-lib.git] / src / org / mxchange / addressbook / model / addressbook / UserAddressbook.java
index 2ddd1cb1bf66cbc6c2aea258bcf51800645767f8..fe9a5c34b6f0f1fdd5006c8c1813bd0142e5ac2a 100644 (file)
@@ -28,6 +28,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.OneToOne;
@@ -49,7 +50,7 @@ import org.mxchange.jusercore.model.user.User;
                {
                        @NamedQuery (name = "AllUsersAddressbooks", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookUser = :param ORDER BY a.addressbookId ASC"),
                        @NamedQuery (name = "SearchUserAddressbookName", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookUser = :user AND LOWER(a.addressbookName) LIKE LOWER(:name)"),
-                       @NamedQuery (name = "FindAddressbookById", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookId = :id")
+                       @NamedQuery (name = "SearchAddressbookById", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookId = :id")
                }
 )
 public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
@@ -94,50 +95,46 @@ public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
         * Connection to "users" table
         */
        @JoinColumn (name = "addressbook_user_id", nullable = false)
-       @OneToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.ALL)
+       @OneToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.MERGE)
        private User addressbookUser;
 
+       /**
+        * Last locked timestamp
+        */
+       @Temporal (TemporalType.TIMESTAMP)
+       @Column (name = "addressbook_last_locked")
+       private Calendar addressbookLastLocked;
+
+       /**
+        * Last locked timestamp
+        */
+       @Lob
+       @Column (name = "addressbook_last_locked_reason")
+       private String addressbookLastLockedReason;
+
        /**
         * Public constructor with address book name
         * <p>
         * @param addressbookName Address book name
+        * @param addressbookUser User instance
+        * @param addressbookCreated When this entry has been created
         */
-       public UserAddressbook (final String addressbookName) {
+       public UserAddressbook (final String addressbookName, final User addressbookUser, final Calendar addressbookCreated) {
                // Call default constructor
                this();
 
-               // Set name
+               // Set name, user instance and creation timestamp
                this.addressbookName = addressbookName;
+               this.addressbookUser = addressbookUser;
+               this.addressbookCreated = addressbookCreated;
        }
 
        /**
         * Default protected constructor
         */
        protected UserAddressbook () {
-       }
-
-       @Override
-       public int compareTo (final Addressbook addressbook) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
-       }
-
-       @Override
-       public boolean equals (final Object object) {
-               if (object == null) {
-                       return false;
-               } else if (getClass() != object.getClass()) {
-                       return false;
-               }
-
-               final Addressbook other = (Addressbook) object;
-
-               if (!Objects.equals(this.getAddressbookName(), other.getAddressbookName())) {
-                       return false;
-               } else if (!Objects.equals(this.getAddressbookUser(), other.getAddressbookUser())) {
-                       return false;
-               }
-
-               return true;
+               // Set status to UNLOCKED
+               this.addressbookStatus = AddressbokStatus.UNLOCKED;
        }
 
        @Override
@@ -160,6 +157,26 @@ public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
                this.addressbookId = addressbookId;
        }
 
+       @Override
+       public Calendar getAddressbookLastLocked () {
+               return this.addressbookLastLocked;
+       }
+
+       @Override
+       public void setAddressbookLastLocked (final Calendar addressbookLastLocked) {
+               this.addressbookLastLocked = addressbookLastLocked;
+       }
+
+       @Override
+       public String getAddressbookLastLockedReason () {
+               return this.addressbookLastLockedReason;
+       }
+
+       @Override
+       public void setAddressbookLastLockedReason (final String addressbookLastLockedReason) {
+               this.addressbookLastLockedReason = addressbookLastLockedReason;
+       }
+
        @Override
        public String getAddressbookName () {
                return this.addressbookName;
@@ -190,6 +207,30 @@ public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
                this.addressbookUser = addressbookUser;
        }
 
+       @Override
+       public int compareTo (final Addressbook addressbook) {
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       }
+
+       @Override
+       public boolean equals (final Object object) {
+               if (object == null) {
+                       return false;
+               } else if (getClass() != object.getClass()) {
+                       return false;
+               }
+
+               final Addressbook other = (Addressbook) object;
+
+               if (!Objects.equals(this.getAddressbookName(), other.getAddressbookName())) {
+                       return false;
+               } else if (!Objects.equals(this.getAddressbookUser(), other.getAddressbookUser())) {
+                       return false;
+               }
+
+               return true;
+       }
+
        @Override
        public int hashCode () {
                int hash = 7;