]> git.mxchange.org Git - jjobs-war.git/blob - src/java/org/mxchange/jjobs/beans/addressbook/JobsAddressbookWebSessionController.java
Updated copyright year
[jjobs-war.git] / src / java / org / mxchange / jjobs / beans / addressbook / JobsAddressbookWebSessionController.java
1 /*
2  * Copyright (C) 2016, 2020 Free Software Foundation
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License as
6  * published by the Free Software Foundation, either version 3 of the
7  * License, or (at your option) any later version.
8  *
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 Affero General Public License for more details.
13  *
14  * You should have received a copy of the GNU Affero General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 package org.mxchange.jjobs.beans.addressbook;
18
19 import java.io.Serializable;
20 import java.util.Date;
21 import java.util.List;
22 import org.mxchange.jaddressbook.events.addressbook.ObservableAddressbookLoadedEvent;
23 import org.mxchange.jaddressbook.model.addressbook.Addressbook;
24 import org.mxchange.jaddressbook.model.addressbook.entry.AddressbookEntry;
25 import org.mxchange.jusercore.model.user.User;
26 import org.mxchange.juserlogincore.events.login.ObservableUserLoggedInEvent;
27
28 /**
29  * An interface for address book beans
30  * <p>
31  * @author Roland Häder<roland@mxchange.org>
32  */
33 public interface JobsAddressbookWebSessionController extends Serializable {
34
35         /**
36          * Checks whether the user has created addressbooks. For this method to work
37          * it is vital that the user is logged into his/her account.
38          * <p>
39          * @return Whether the user has created at least one addressbook
40          */
41         boolean hasCreatedAddressbooks ();
42
43         /**
44          * Creates a new address book with a name and redirects to proper target.
45          * For this method to work it is vital that the user is logged into his/her
46          * account.
47          * <p>
48          * @return Target to redirect to
49          */
50         String addAddressbook ();
51
52         /**
53          * Getter for address book name
54          * <p>
55          * @return Address book name
56          */
57         String getAddressbookName ();
58
59         /**
60          * Setter for address book name
61          * <p>
62          * @param addressbookName Address book name
63          */
64         void setAddressbookName (final String addressbookName);
65
66         /**
67          * Checks if the given address book name is already used by the user.
68          * <p>
69          * @param addressbookName Address book name to check
70          * <p>
71          * @return Whether the name has already been used by the user
72          */
73         boolean isAddressbookNameUsed (final String addressbookName);
74
75         /**
76          * Returns all address books with this user
77          * <p>
78          * @return A list of all address books by this user
79          */
80         List<Addressbook> allAddressbooks ();
81
82         /**
83          * Returns a list of all address book entries for given address book
84          * <p>
85          * @param addressbook Address book instance
86          * <p>
87          * @return List of all entries
88          */
89         List<AddressbookEntry> allEntries (final Addressbook addressbook);
90
91         /**
92          * Size of all entries in given address book
93          * <p>
94          * @param addressbook Address book instance
95          * <p>
96          * @return Size of the entries in address book
97          */
98         int allEntriesSize (final Addressbook addressbook);
99
100         /**
101          * Getter for address book id number
102          * <p>
103          * @return Address book id number
104          */
105         Long getAddressbookId ();
106
107         /**
108          * Setter for address book id number
109          * <p>
110          * @param addressbookId Address book id number
111          */
112         void setAddressbookId (final Long addressbookId);
113
114         /**
115          * Getter for address book user (owner)
116          * <p>
117          * @return Address book user (owner)
118          */
119         User getAddressbookUser ();
120
121         /**
122          * Setter for address book user (owner)
123          * <p>
124          * @param addressbookUser Address book user (owner)
125          */
126         void setAddressbookUser (final User addressbookUser);
127
128         /**
129          * Getter for when the address book has been created
130          * <p>
131          * @return When the address book has been created
132          */
133         Date getAddressbookCreated ();
134
135         /**
136          * Setter for when the address book has been created
137          * <p>
138          * @param addressbookCreated When the address book has been created
139          */
140         void setAddressbookCreated (final Date addressbookCreated);
141
142         /**
143          * This method is called when an address book has been successfully loaded
144          * from JPA.
145          * <p>
146          * @param event Event with address book instance
147          */
148         void afterAddressbookLoadedEvent (final ObservableAddressbookLoadedEvent event);
149
150         /**
151          * This method is called when a user has successfully logged in his/her
152          * account.
153          * <p>
154          * @param event
155          */
156         void afterLoginEvent (final ObservableUserLoggedInEvent event);
157
158         /**
159          * Checks if the user is logged in and if so if it matches the current
160          * address book owner.
161          * <p>
162          * @return Whether the owner matches currently logged-in user
163          */
164         boolean isOwnAddressbook ();
165
166         /**
167          * Checks if the owner of the current address book is NOT matching the
168          * logged-in user.
169          * <p>
170          * @return Whether the user does NOT match
171          */
172         boolean isOtherAddressbook ();
173
174         /**
175          * Getter for address book instance
176          * <p>
177          * @return Address book instance
178          */
179         Addressbook getAddressbook ();
180
181         /**
182          * Setter for address book instance
183          * <p>
184          * @param addressbook Address book instance
185          */
186         void setAddressbook (final Addressbook addressbook);
187
188         /**
189          * Checks weather an address book has been loaded by checking the id number.
190          * <p>
191          * @return Whether the address book is loaded
192          */
193         boolean isAddressbookLoaded ();
194
195         /**
196          * Loads address book from current id
197          * <p>
198          * @return Whether the address book was found
199          */
200         boolean loadAddressbook ();
201 }