]> git.mxchange.org Git - jfinancials-swing.git/blob - Addressbook/src/org/mxchange/addressbook/manager/contact/ManageableContact.java
Added a lot trace messages + sanity checks for null references and such things
[jfinancials-swing.git] / Addressbook / src / org / mxchange / addressbook / manager / contact / ManageableContact.java
1 /*
2  * Copyright (C) 2015 Roland Haeder
3  *
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.
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 General Public License for more details.
13  *
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/>.
16  */
17 package org.mxchange.addressbook.manager.contact;
18
19 import java.util.List;
20 import org.mxchange.addressbook.contact.Contact;
21 import org.mxchange.addressbook.contact.Gender;
22 import org.mxchange.addressbook.manager.Manageable;
23
24 /**
25  *
26  * @author Roland Haeder
27  */
28 public interface ManageableContact extends Manageable {
29
30         /**
31          * Shuts down this contact manager
32          */
33         public void doShutdown ();
34
35         /**
36          * Allows the user to enter own cellphone number.
37          *
38          * @return Cellphone number
39          */
40         public String enterOwnCellNumber ();
41
42         /**
43          * Allows the user to enter own city name.
44          *
45          * @return City name
46          */
47         public String enterOwnCity ();
48
49         /**
50          * Allows the user to enter comment for own entry.
51          *
52          * @return Comment
53          */
54         public String enterOwnComment ();
55
56         /**
57          * Allows the user to enter own company name.
58          *
59          * @return Company name
60          */
61         public String enterOwnCompanyName ();
62
63         /**
64          * Allows the user to enter own country code.
65          *
66          * @return Country code
67          */
68         public String enterOwnCountryCode ();
69
70         /**
71          * Allows the user to enter own email address.
72          *
73          * @return Email address
74          */
75         public String enterOwnEmailAddress ();
76
77         /**
78          * Allows the user to enter own family name.
79          *
80          * @return Family name
81          */
82         public String enterOwnFamilyName ();
83
84         /**
85          * Allows the user to enter own fax number.
86          *
87          * @return Fax number
88          */
89         public String enterOwnFaxNumber ();
90
91         /**
92          * Allows the user to enter own gender.
93          *
94          * @return Gender
95          */
96         public Gender enterOwnGender ();
97
98         /**
99          * Allows the user to enter own phone number.
100          *
101          * @return Phone number
102          */
103         public String enterOwnPhoneNumber ();
104
105         /**
106          * Allows the user to enter own street and house number.
107          *
108          * @return Street and house number
109          */
110         public String enterOwnStreet ();
111
112         /**
113          * Allows the user to enter own surname.
114          *
115          * @return Surname
116          */
117         public String enterOwnSurname ();
118
119         /**
120          * Allows the user to enter own ZIP code.
121          *
122          * @return ZIP code
123          */
124         public int enterOwnZipCode ();
125
126         /**
127          * Getter for column count
128          *
129          * @return Column count
130          */
131         public int getColumnCount ();
132
133         /**
134          * List all contacts
135          */
136         public void doListContacts ();
137
138         /**
139          * Getter for column name at given index.
140          *
141          * @param columnIndex Column index
142          * @return Human-readable column name
143          */
144         public String getColumnName (final int columnIndex);
145
146         /**
147          * Adds given contact to address book
148          *
149          * @param contact Contact being added
150          * @todo Add check for book size
151          */
152         public void registerContact (final Contact contact);
153
154         /**
155          * Adds given Contact instance to list
156          *
157          * @param contact Contact instance to add
158          */
159         public void addContact (final Contact contact);
160
161         /**
162          * Let the user add a new other address
163          */
164         public void doAddOtherAddress ();
165
166         /**
167          * The user can change address data, like street, ZIP code, city and country
168          * of given Contact instance.
169          *
170          * @param contact Instance to change data
171          */
172         public void doChangeAddressData (final Contact contact);
173
174         /**
175          * The user can change name data, like gender, surname, family name and
176          * company name (if business contact).
177          *
178          * @param contact Instance to change data
179          */
180         public void doChangeNameData (final Contact contact);
181
182         /**
183          * Let the user change other address
184          */
185         public void doChangeOtherAddress ();
186
187         /**
188          * The user can change other data, like phone numbers or comments.
189          *
190          * @param contact Instance to change data
191          */
192         public void doChangeOtherData (final Contact contact);
193
194         /**
195          * Let the user change own data
196          */
197         public void doChangeOwnData ();
198
199         /**
200          * Let the user delete other address
201          */
202         public void doDeleteOtherAddress ();
203
204         /**
205          * Asks user for own data
206          */
207         public void doEnterOwnData ();
208
209         /**
210          * Getter for whole list
211          *
212          * @return List of all contacts
213          */
214         public List<Contact> getList ();
215
216         /**
217          * Searches address book for a contact
218          */
219         public void doSearchContacts ();
220
221         /**
222          * Checks whether own contact is already added by checking all entries for
223          * isOwnContact flag
224          *
225          * @return Whether own contact is already added
226          */
227         public boolean isOwnContactAdded ();
228
229         /**
230          * Getter for size
231          *
232          * @return size of contact "book"
233          */
234         public int size ();
235 }