/*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2020 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
package org.mxchange.jaddressbookshare.model.addressbook.shared;
import java.text.MessageFormat;
-import java.util.Calendar;
+import java.util.Date;
import java.util.Objects;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Transient;
import org.mxchange.jaddressbook.model.addressbook.Addressbook;
import org.mxchange.jaddressbook.model.addressbook.UserAddressbook;
+import org.mxchange.jcoreutils.Comparables;
import org.mxchange.jusercore.model.user.LoginUser;
import org.mxchange.jusercore.model.user.User;
@Basic (optional = false)
@Temporal (TemporalType.TIMESTAMP)
@Column (name = "share_created", nullable = false, updatable = false)
- private Calendar shareCreated;
+ private Date shareCreated;
/**
* Id number
/**
* Constructor with address book and sharee instance. Both parameters must
- * not be null, their id numbers must be set and the adress book's user
+ * not be null, their id numbers must be set and the address book's user
* instance must be set and have a valid id set.
* <p>
* @param addressbook Address book instance
- * @param sharee User sharee instance
+ * @param sharee User sharee instance
*/
public AddressbookShare (final Addressbook addressbook, final User sharee) {
- // Call default constructor
+ // Invoke default constructor
this();
// Check all conditions
this.shareUserSharee = sharee;
}
+ @Override
+ public int compareTo (final ShareableAddressbook shareableAddressbook) {
+ // Checkparameter and return 0 if equal
+ if (null == shareableAddressbook) {
+ // Should not happen
+ throw new NullPointerException("shareableAddressbook is null"); //NOI18N
+ } else if (shareableAddressbook.equals(this)) {
+ // Same object
+ return 0;
+ }
+
+ // All comparators
+ final int comparators[] = {
+ // First address book
+ this.getShareAddressbook().compareTo(shareableAddressbook.getShareAddressbook()),
+ // ... next sharer
+ this.getShareUserOwner().compareTo(shareableAddressbook.getShareUserOwner()),
+ // ... next sharee
+ this.getShareUserSharee().compareTo(shareableAddressbook.getShareUserSharee()),
+ };
+
+ // Check all values
+ final int comparison = Comparables.checkAll(comparators);
+
+ // Return value
+ return comparison;
+ }
+
@Override
public boolean equals (final Object object) {
if (null == object) {
return Objects.equals(this.getShareUserSharee(), other.getShareUserSharee());
}
- @Override
- public int hashCode () {
- int hash = 7;
- hash = 19 * hash + Objects.hashCode(this.getShareAddressbook());
- hash = 19 * hash + Objects.hashCode(this.getShareUserOwner());
- hash = 19 * hash + Objects.hashCode(this.getShareUserSharee());
- return hash;
- }
-
@Override
public Addressbook getShareAddressbook () {
return this.shareAddressbook;
@Override
@SuppressWarnings ("ReturnOfDateField")
- public Calendar getShareCreated () {
+ public Date getShareCreated () {
return this.shareCreated;
}
@Override
@SuppressWarnings ("AssignmentToDateFieldFromParameter")
- public void setShareCreated (final Calendar shareCreated) {
+ public void setShareCreated (final Date shareCreated) {
this.shareCreated = shareCreated;
}
this.shareUserSharee = shareUserSharee;
}
+ @Override
+ public int hashCode () {
+ int hash = 7;
+
+ hash = 19 * hash + Objects.hashCode(this.getShareAddressbook());
+ hash = 19 * hash + Objects.hashCode(this.getShareUserOwner());
+ hash = 19 * hash + Objects.hashCode(this.getShareUserSharee());
+
+ return hash;
+ }
+
}