]> git.mxchange.org Git - jaddressbook-core.git/blobdiff - src/org/mxchange/jaddressbook/model/addressbook/UserAddressbook.java
Continued:
[jaddressbook-core.git] / src / org / mxchange / jaddressbook / model / addressbook / UserAddressbook.java
index e6099743238645ad7d3e7281828b1bb94ace6217..1781f33275418514ddec3c63385c2a00c6b534ac 100644 (file)
@@ -16,6 +16,7 @@
  */
 package org.mxchange.jaddressbook.model.addressbook;
 
+import java.text.MessageFormat;
 import java.util.Date;
 import java.util.Objects;
 import javax.persistence.Basic;
@@ -36,10 +37,13 @@ import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 import javax.persistence.Transient;
+import org.apache.commons.lang3.StringUtils;
 import org.mxchange.jaddressbook.model.addressbook.status.AddressbokStatus;
-import org.mxchange.jcoreutils.comparable.Comparables;
+import org.mxchange.jcoreutils.comparable.ComparableUtils;
+import org.mxchange.jcoreutils.enums.EnumUtils;
 import org.mxchange.jusercore.model.user.LoginUser;
 import org.mxchange.jusercore.model.user.User;
+import org.mxchange.jusercore.model.utils.UserUtils;
 
 /**
  * A POJO for user address books
@@ -69,8 +73,15 @@ public class UserAddressbook implements Addressbook {
         */
        @Basic (optional = false)
        @Temporal (value = TemporalType.TIMESTAMP)
-       @Column (name = "addressbook_created", updatable = false, nullable = false)
-       private Date addressbookCreated;
+       @Column (name = "addressbook_entry_created", updatable = false, nullable = false)
+       private Date addressbookEntryCreated;
+
+       /**
+        * When this address book has been created
+        */
+       @Temporal (value = TemporalType.TIMESTAMP)
+       @Column (name = "addressbook_entry_updated", insertable = false, nullable = false)
+       private Date addressbookEntryUpdated;
 
        /**
         * Id number
@@ -109,13 +120,6 @@ 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
         */
@@ -133,6 +137,24 @@ public class UserAddressbook implements Addressbook {
                // Invoke default constructor
                this();
 
+               // Check all parameters
+               if (null == addressbookName) {
+                       // Throw NPE
+                       throw new NullPointerException("Parameter 'addressbookName' is null"); //NOI18N
+               } else if (addressbookName.isEmpty()) {
+                       // Throw IAE
+                       throw new IllegalArgumentException("Parameter 'addressbookName' is empty"); //NOI18N
+               } else if (null == addressbookUser) {
+                       // Throw NPE again
+                       throw new NullPointerException("Parameter 'addressbookUser' is null"); //NOI18N
+               } else if (addressbookUser.getUserId() == null) {
+                       // Throw it again
+                       throw new NullPointerException("addressbookUser.userId is null"); //NOI18N
+               } else if (addressbookUser.getUserId() < 1) {
+                       // Throw IAE again
+                       throw new IllegalArgumentException(MessageFormat.format("addressbookUser.userId={0} is invalid", addressbookUser.getUserId())); //NOI18N
+               }
+
                // Set name and user instance
                this.addressbookName = addressbookName;
                this.addressbookUser = addressbookUser;
@@ -158,15 +180,15 @@ public class UserAddressbook implements Addressbook {
                // All comparators
                final int comparators[] = {
                        // First name ...
-                       this.getAddressbookName().compareToIgnoreCase(addressbook.getAddressbookName()),
+                       StringUtils.compare(this.getAddressbookName(), addressbook.getAddressbookName()),
                        // ... status
-                       this.getAddressbookStatus().compareTo(addressbook.getAddressbookStatus()),
+                       EnumUtils.compare(this.getAddressbookStatus(), addressbook.getAddressbookStatus()),
                        // .. then user
-                       this.getAddressbookUser().compareTo(addressbook.getAddressbookUser())
+                       UserUtils.compare(this.getAddressbookUser(), addressbook.getAddressbookUser())
                };
 
                // Check all values
-               final int comparison = Comparables.checkAll(comparators);
+               final int comparison = ComparableUtils.checkAll(comparators);
 
                // Return value
                return comparison;
@@ -201,14 +223,26 @@ public class UserAddressbook implements Addressbook {
 
        @Override
        @SuppressWarnings ("ReturnOfDateField")
-       public Date getAddressbookCreated () {
-               return this.addressbookCreated;
+       public Date getAddressbookEntryCreated () {
+               return this.addressbookEntryCreated;
+       }
+
+       @Override
+       @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+       public void setAddressbookEntryCreated (final Date addressbookEntryCreated) {
+               this.addressbookEntryCreated = addressbookEntryCreated;
+       }
+
+       @Override
+       @SuppressWarnings ("ReturnOfDateField")
+       public Date getAddressbookEntryUpdated () {
+               return this.addressbookEntryUpdated;
        }
 
        @Override
        @SuppressWarnings ("AssignmentToDateFieldFromParameter")
-       public void setAddressbookCreated (final Date addressbookCreated) {
-               this.addressbookCreated = addressbookCreated;
+       public void setAddressbookEntryUpdated (final Date addressbookEntryUpdated) {
+               this.addressbookEntryUpdated = addressbookEntryUpdated;
        }
 
        @Override
@@ -263,18 +297,6 @@ 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;