]> git.mxchange.org Git - addressbook-swing.git/blob - Addressbook/src/org/mxchange/addressbook/manager/contact/ManageableContact.java
Continued:
[addressbook-swing.git] / Addressbook / src / org / mxchange / addressbook / manager / contact / ManageableContact.java
1 /*\r
2  * Copyright (C) 2015 Roland Haeder\r
3  *\r
4  * This program is free software: you can redistribute it and/or modify\r
5  * it under the terms of the GNU General Public License as published by\r
6  * the Free Software Foundation, either version 3 of the License, or\r
7  * (at your option) any later version.\r
8  *\r
9  * This program is distributed in the hope that it will be useful,\r
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12  * GNU General Public License for more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License\r
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
16  */\r
17 package org.mxchange.addressbook.manager.contact;\r
18 \r
19 import java.util.List;\r
20 import org.mxchange.addressbook.client.Client;\r
21 import org.mxchange.addressbook.contact.Contact;\r
22 import org.mxchange.addressbook.manager.Manageable;\r
23 \r
24 /**\r
25  *\r
26  * @author Roland Haeder\r
27  */\r
28 public interface ManageableContact extends Manageable {\r
29     /**\r
30      * Adds given contact to address book\r
31      *\r
32      * @param contact Contact being added\r
33      * @todo Add check for book size\r
34      */\r
35     public void registerContact (final Contact contact);\r
36 \r
37     /**\r
38      * Adds given Contact instance to list\r
39      * \r
40      * @param contact Contact instance to add\r
41      */\r
42     public void addContact (final Contact contact);\r
43 \r
44     /**\r
45      * Let the user add a new other address\r
46      */\r
47     public void addOtherAddress();\r
48 \r
49     /**\r
50      * The user can change address data, like street, ZIP code, city and country\r
51      * of given Contact instance.\r
52      * \r
53      * @param contact Instance to change data\r
54      * @param client Client instance to call back\r
55      */\r
56     public void doChangeAddressData (final Contact contact, final Client client);\r
57 \r
58     /**\r
59      * The user can change name data, like gender, surname, family name and\r
60      * company name (if business contact).\r
61      * \r
62      * @param contact Instance to change data\r
63      * @param client Client instance to call back\r
64      */\r
65     public void doChangeNameData (final Contact contact, final Client client);\r
66 \r
67     /**\r
68      * Let the user change other address\r
69      */\r
70     public void changeOtherAddress();\r
71 \r
72     /**\r
73      * The user can change other data, like phone numbers or comments.\r
74      * \r
75      * @param contact Instance to change data\r
76      * @param client Client instance to call back\r
77      */\r
78     public void doChangeOtherData (final Contact contact, final Client client);\r
79 \r
80     /**\r
81      * Let the user change own data\r
82      */\r
83     public void changeOwnData();\r
84 \r
85     /**\r
86      * Let the user delete other address\r
87      */\r
88     public void deleteOtherAddress();\r
89 \r
90     /**\r
91      * Asks user for own data\r
92      */\r
93     public void doEnterOwnData();\r
94 \r
95     /**\r
96      * Getter for whole list\r
97      * @return List of all contacts\r
98      */\r
99     public List<Contact> getList ();\r
100 \r
101     /**\r
102      * Getter for size\r
103      *\r
104      * @return size of contact "book"\r
105      */\r
106     public int size();\r
107 }\r