2 * Copyright (C) 2016 - 2020 Free Software Foundation
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jaddressbookshare.model.addressbook.shared;
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jaddressbook.model.addressbook.Addressbook;
22 import org.mxchange.jusercore.model.user.User;
25 * A POJI for shared address books
27 * @author Roland Häder<roland@mxchange.org>
29 public interface ShareableAddressbook extends Comparable<ShareableAddressbook>, Serializable {
32 * Getter for shared address book instance
34 * @return Shared address book instance
36 Addressbook getShareAddressbook ();
39 * Setter for shared address book instance
41 * @param shareAddressbook Shared address book instance
43 void setShareAddressbook (final Addressbook shareAddressbook);
46 * Getter for id number
53 * Setter for id number
55 * @param shareId Id number
57 void setShareId (final Long shareId);
60 * Getter for address book owner instance
62 * @return Address book owner instance
64 User getShareUserOwner ();
67 * Setter for address book owner instance
69 * @param shareUserOwner Address book owner instance
71 void setShareUserOwner (final User shareUserOwner);
74 * Getter for address book sharee instance
76 * @return Address book sharee instance
78 User getShareUserSharee ();
81 * Setter for address book sharee instance
83 * @param shareUserSharer Address book sharee instance
85 void setShareUserSharee (final User shareUserSharer);
88 * Getter for share created timestamp
90 * @return Share created timestamp
92 Date getShareEntryCreated ();
95 * Setter for share created timestamp
97 * @param shareCreated Share created timestamp
99 void setShareEntryCreated (final Date shareCreated);
102 * Getter for share updated timestamp
104 * @return Share updated timestamp
106 Date getShareEntryUpdated ();
109 * Setter for share updated timestamp
111 * @param shareUpdated Share updated timestamp
113 void setShareEntryUpdated (final Date shareUpdated);
116 boolean equals (final Object object);