From: Roland Haeder Date: Tue, 13 Oct 2015 13:07:18 +0000 (+0200) Subject: Continued: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=5cc566a80999b4fa40773729dc3c9c74f8137268;p=jaddressbook-lib.git Continued: - added POJO/POJI for address book sharing - added equals()/hashCode() - updated jar(s) Signed-off-by:Roland Häder --- diff --git a/lib/jcontacts-business-core.jar b/lib/jcontacts-business-core.jar index 61f8e0fa..f8199150 100644 Binary files a/lib/jcontacts-business-core.jar and b/lib/jcontacts-business-core.jar differ diff --git a/lib/jcontacts-core.jar b/lib/jcontacts-core.jar index 680b3d15..a135b3e1 100644 Binary files a/lib/jcontacts-core.jar and b/lib/jcontacts-core.jar differ diff --git a/lib/jcountry-core.jar b/lib/jcountry-core.jar index 049ef5f9..7166776e 100644 Binary files a/lib/jcountry-core.jar and b/lib/jcountry-core.jar differ diff --git a/lib/jphone-core.jar b/lib/jphone-core.jar index 5fc37624..c2ea571c 100644 Binary files a/lib/jphone-core.jar and b/lib/jphone-core.jar differ diff --git a/lib/juser-core.jar b/lib/juser-core.jar index bf521fb3..b5427c7e 100644 Binary files a/lib/juser-core.jar and b/lib/juser-core.jar differ diff --git a/src/org/mxchange/addressbook/model/addressbook/Addressbook.java b/src/org/mxchange/addressbook/model/addressbook/Addressbook.java index 9b03baa7..fab85269 100644 --- a/src/org/mxchange/addressbook/model/addressbook/Addressbook.java +++ b/src/org/mxchange/addressbook/model/addressbook/Addressbook.java @@ -97,4 +97,10 @@ public interface Addressbook extends Serializable { * @param addressbookUser Addressbook's user (owner) */ public void setAddressbookUser (final User addressbookUser); + + @Override + public boolean equals (final Object object); + + @Override + public int hashCode (); } diff --git a/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java b/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java index 95496f10..68d667a2 100644 --- a/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java +++ b/src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java @@ -17,6 +17,7 @@ package org.mxchange.addressbook.model.addressbook; import java.util.Calendar; +import java.util.Objects; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -120,6 +121,24 @@ public class UserAddressbook implements Addressbook, Comparable { 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; + } + if (getClass() != object.getClass()) { + return false; + } + final Addressbook other = (Addressbook) object; + if (!Objects.equals(this.getAddressbookName(), other.getAddressbookName())) { + return false; + } + if (!Objects.equals(this.getAddressbookUser(), other.getAddressbookUser())) { + return false; + } + return true; + } + @Override public Calendar getAddressbookCreated () { return this.addressbookCreated; @@ -169,4 +188,12 @@ public class UserAddressbook implements Addressbook, Comparable { public void setAddressbookUser (final User addressbookUser) { this.addressbookUser = addressbookUser; } + + @Override + public int hashCode () { + int hash = 7; + hash = 59 * hash + Objects.hashCode(this.getAddressbookName()); + hash = 59 * hash + Objects.hashCode(this.getAddressbookUser()); + return hash; + } } diff --git a/src/org/mxchange/addressbook/model/addressbook/shared/AddressbookShare.java b/src/org/mxchange/addressbook/model/addressbook/shared/AddressbookShare.java new file mode 100644 index 00000000..b02e5ce0 --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/shared/AddressbookShare.java @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2015 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.model.addressbook.shared; + +import java.util.Objects; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Table; +import org.mxchange.addressbook.model.addressbook.Addressbook; +import org.mxchange.addressbook.model.addressbook.UserAddressbook; +import org.mxchange.jusercore.model.user.LoginUser; +import org.mxchange.jusercore.model.user.User; + +/** + * A POJO for sharing address books with other users + *

+ * @author Roland Haeder + */ +@Entity (name = "addressbook_shares") +@Table (name = "addressbook_shares") +public class AddressbookShare implements ShareableAddressbook, Comparable { + + /** + * Serial number + */ + private static final long serialVersionUID = 167_889_678_177_691_690L; + + /** + * Id number + */ + @Id + @GeneratedValue (strategy = GenerationType.IDENTITY) + @Column (name = "share_id", length = 20, nullable = false, updatable = false) + private Long shareId; + + /** + * Address book this share is for + */ + @JoinColumn (name = "share_addressbook_id", nullable = false, updatable = false) + @OneToOne (targetEntity = UserAddressbook.class, cascade = CascadeType.ALL, optional = false) + private Addressbook shareAddressbook; + + /** + * User who is giving the share (for his/her address book) + */ + @JoinColumn (name = "share_owner_id", nullable = false, updatable = false) + @OneToOne (targetEntity = LoginUser.class, cascade = CascadeType.ALL, optional = false) + private User shareUserOwner; + + /** + * User the address book is shared with + */ + @JoinColumn (name = "share_sharee_id", nullable = false, updatable = false) + @OneToOne (targetEntity = LoginUser.class, cascade = CascadeType.ALL, optional = false) + private User shareUserSharee; + + @Override + public int compareTo (final ShareableAddressbook share) { + 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 ShareableAddressbook other = (ShareableAddressbook) object; + + if (!Objects.equals(this.getShareUserOwner(), other.getShareUserOwner())) { + return false; + } else if (!Objects.equals(this.getShareUserOwner(), other.getShareUserOwner())) { + return false; + } + + return Objects.equals(this.getShareUserSharee(), other.getShareUserSharee()); + } + + @Override + public Addressbook getShareAddressbook () { + return this.shareAddressbook; + } + + @Override + public void setShareAddressbook (final Addressbook shareAddressbook) { + this.shareAddressbook = shareAddressbook; + } + + @Override + public Long getShareId () { + return this.shareId; + } + + @Override + public void setShareId (final Long shareId) { + this.shareId = shareId; + } + + @Override + public User getShareUserOwner () { + return this.shareUserOwner; + } + + @Override + public void setShareUserOwner (final User shareUserOwner) { + this.shareUserOwner = shareUserOwner; + } + + @Override + public User getShareUserSharee () { + return this.shareUserSharee; + } + + @Override + public void setShareUserSharee (final User shareUserSharee) { + 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; + } +} diff --git a/src/org/mxchange/addressbook/model/addressbook/shared/ShareableAddressbook.java b/src/org/mxchange/addressbook/model/addressbook/shared/ShareableAddressbook.java new file mode 100644 index 00000000..43da0444 --- /dev/null +++ b/src/org/mxchange/addressbook/model/addressbook/shared/ShareableAddressbook.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2015 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.model.addressbook.shared; + +import java.io.Serializable; +import org.mxchange.addressbook.model.addressbook.Addressbook; +import org.mxchange.jusercore.model.user.User; + +/** + * A POJI for shared address books + *

+ * @author Roland Haeder + */ +public interface ShareableAddressbook extends Serializable { + + /** + * Getter for shared address book instance + *

+ * @return Shared address book instance + */ + public Addressbook getShareAddressbook (); + + /** + * Setter for shared address book instance + *

+ * @param shareAddressbook Shared address book instance + */ + public void setShareAddressbook (final Addressbook shareAddressbook); + + /** + * Getter for id number + *

+ * @return Id number + */ + public Long getShareId (); + + /** + * Setter for id number + *

+ * @param shareId Id number + */ + public void setShareId (final Long shareId); + + /** + * Getter for address book owner instance + *

+ * @return Address book owner instance + */ + public User getShareUserOwner (); + + /** + * Setter for address book owner instance + *

+ * @param shareUserOwner Address book owner instance + */ + public void setShareUserOwner (final User shareUserOwner); + + /** + * Getter for address book sharee instance + *

+ * @return Address book sharee instance + */ + public User getShareUserSharee (); + + /** + * Setter for address book sharee instance + *

+ * @param shareUserSharer Address book sharee instance + */ + public void setShareUserSharee (final User shareUserSharer); + + @Override + public boolean equals (final Object object); + + @Override + public int hashCode (); +}