]> git.mxchange.org Git - addressbook-swing.git/blob - Addressbook/src/org/mxchange/addressbook/manager/contact/ManageableContact.java
Implemented getColumnName() + added it to ContactManager as this class holds the...
[addressbook-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.client.Client;
21 import org.mxchange.addressbook.contact.Contact;
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 char 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      * @param client Client instance to call back
172      */
173     public void doChangeAddressData (final Contact contact, final Client client);
174
175     /**
176      * The user can change name data, like gender, surname, family name and
177      * company name (if business contact).
178      * 
179      * @param contact Instance to change data
180      * @param client Client instance to call back
181      */
182     public void doChangeNameData (final Contact contact, final Client client);
183
184     /**
185      * Let the user change other address
186      */
187     public void doChangeOtherAddress();
188
189     /**
190      * The user can change other data, like phone numbers or comments.
191      * 
192      * @param contact Instance to change data
193      * @param client Client instance to call back
194      */
195     public void doChangeOtherData (final Contact contact, final Client client);
196
197     /**
198      * Let the user change own data
199      */
200     public void doChangeOwnData();
201
202     /**
203      * Let the user delete other address
204      */
205     public void doDeleteOtherAddress();
206
207     /**
208      * Asks user for own data
209      */
210     public void doEnterOwnData();
211
212     /**
213      * Getter for whole list
214      * @return List of all contacts
215      */
216     public List<Contact> getList ();
217
218     /**
219      * Searches address book for a contact
220      */
221     public void doSearchContacts ();
222
223     /**
224      * Checks whether own contact is already added by checking all entries for
225      * isOwnContact flag
226      * 
227      * @return Whether own contact is already added
228      */
229     public boolean isOwnContactAdded ();
230
231     /**
232      * Getter for size
233      *
234      * @return size of contact "book"
235      */
236     public int size();
237 }