]> git.mxchange.org Git - jaddressbook-core.git/blobdiff - src/org/mxchange/jaddressbook/model/addressbook/UserAddressbook.java
updated references
[jaddressbook-core.git] / src / org / mxchange / jaddressbook / model / addressbook / UserAddressbook.java
index f6766a80086c39c78d087993a85e6c3828551a29..e6099743238645ad7d3e7281828b1bb94ace6217 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 - 2018 Free Software Foundation
+ * Copyright (C) 2016 - 2022 Free Software Foundation
  *
  * 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
@@ -37,7 +37,7 @@ import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import javax.persistence.Transient;
 import org.mxchange.jaddressbook.model.addressbook.status.AddressbokStatus;
-import org.mxchange.jcoreutils.Comparables;
+import org.mxchange.jcoreutils.comparable.Comparables;
 import org.mxchange.jusercore.model.user.LoginUser;
 import org.mxchange.jusercore.model.user.User;
 
@@ -69,7 +69,7 @@ public class UserAddressbook implements Addressbook {
         */
        @Basic (optional = false)
        @Temporal (value = TemporalType.TIMESTAMP)
-       @Column (name = "addressbook_created", nullable = false, updatable = false)
+       @Column (name = "addressbook_created", updatable = false, nullable = false)
        private Date addressbookCreated;
 
        /**
@@ -109,6 +109,13 @@ public class UserAddressbook implements Addressbook {
        @Column (name = "addressbook_status", nullable = false, length = 10)
        private AddressbokStatus addressbookStatus;
 
+       /**
+        * When this address book has been created
+        */
+       @Temporal (value = TemporalType.TIMESTAMP)
+       @Column (name = "addressbook_updated", insertable = false, nullable = false)
+       private Date addressbookUpdated;
+
        /**
         * Connection to "users" table
         */
@@ -123,7 +130,7 @@ public class UserAddressbook implements Addressbook {
         * @param addressbookUser User instance
         */
        public UserAddressbook (final String addressbookName, final User addressbookUser) {
-               // Call default constructor
+               // Invoke default constructor
                this();
 
                // Set name and user instance
@@ -144,7 +151,7 @@ public class UserAddressbook implements Addressbook {
                        // Should not happen
                        throw new NullPointerException("addressbook is null"); //NOI18N
                } else if (addressbook.equals(this)) {
-                       // Same object
+                       // Same object, below "expensive" code can be safely skipped
                        return 0;
                }
 
@@ -173,11 +180,19 @@ public class UserAddressbook implements Addressbook {
                        return false;
                }
 
-               final Addressbook other = (Addressbook) object;
+               final Addressbook addressbook = (Addressbook) object;
 
-               if (!Objects.equals(this.getAddressbookName(), other.getAddressbookName())) {
+               if (!Objects.equals(this.getAddressbookId(), addressbook.getAddressbookId())) {
+                       return false;
+               } else if (!Objects.equals(this.getAddressbookLastLocked(), addressbook.getAddressbookLastLocked())) {
+                       return false;
+               } else if (!Objects.equals(this.getAddressbookLastLockedReason(), addressbook.getAddressbookLastLockedReason())) {
+                       return false;
+               } else if (!Objects.equals(this.getAddressbookName(), addressbook.getAddressbookName())) {
+                       return false;
+               } else if (!Objects.equals(this.getAddressbookStatus(), addressbook.getAddressbookStatus())) {
                        return false;
-               } else if (!Objects.equals(this.getAddressbookUser(), other.getAddressbookUser())) {
+               } else if (!Objects.equals(this.getAddressbookUser(), addressbook.getAddressbookUser())) {
                        return false;
                }
 
@@ -248,6 +263,18 @@ public class UserAddressbook implements Addressbook {
                this.addressbookStatus = addressbookStatus;
        }
 
+       @Override
+       @SuppressWarnings ("ReturnOfDateField")
+       public Date getAddressbookUpdated () {
+               return this.addressbookUpdated;
+       }
+
+       @Override
+       @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+       public void setAddressbookUpdated (final Date addressbookUpdated) {
+               this.addressbookUpdated = addressbookUpdated;
+       }
+
        @Override
        public User getAddressbookUser () {
                return this.addressbookUser;
@@ -262,7 +289,11 @@ public class UserAddressbook implements Addressbook {
        public int hashCode () {
                int hash = 7;
 
+               hash = 59 * hash + Objects.hashCode(this.getAddressbookId());
+               hash = 59 * hash + Objects.hashCode(this.getAddressbookLastLocked());
+               hash = 59 * hash + Objects.hashCode(this.getAddressbookLastLockedReason());
                hash = 59 * hash + Objects.hashCode(this.getAddressbookName());
+               hash = 59 * hash + Objects.hashCode(this.getAddressbookStatus());
                hash = 59 * hash + Objects.hashCode(this.getAddressbookUser());
 
                return hash;