1 <?php
2 /* --------------------------------------------------------------
3 AbstractCustomerServiceFactory.inc.php 2015-02-18 gm
4 Gambio GmbH
5 http://www.gambio.de
6 Copyright (c) 2015 Gambio GmbH
7 Released under the GNU General Public License (Version 2)
8 [http://www.gnu.org/licenses/gpl-2.0.html]
9 --------------------------------------------------------------
10 */
11
12 /**
13 * Class AbstractCustomerServiceFactory
14 *
15 * @category System
16 * @package Customer
17 */
18 abstract class AbstractCustomerServiceFactory
19 {
20 /**
21 * Returns the country service.
22 *
23 * @return CountryService Country service.
24 */
25 abstract public function getCountryService();
26
27
28 /**
29 * Returns the customer service.
30 *
31 * @return CustomerService Customer service.
32 */
33 abstract public function getCustomerService();
34
35
36 /**
37 * Returns the customer registration input validator service.
38 *
39 * @return CustomerRegistrationInputValidatorService Customer registration input validator service.
40 */
41 abstract public function getCustomerRegistrationInputValidatorService();
42
43
44 /**
45 * Returns the customer account input validator.
46 *
47 * @return CustomerAccountInputValidator Customer account input validator.
48 */
49 abstract public function getCustomerAccountInputValidator();
50
51
52 /**
53 * Returns the customer input validator.
54 *
55 * @return CustomerAddressInputValidator Customer input validator.
56 */
57 abstract public function getCustomerAddressInputValidatorService();
58
59
60 /**
61 * Returns the database query builder.
62 *
63 * @return CI_DB_query_builder Query builder.
64 */
65 abstract public function getDatabaseQueryBuilder();
66
67
68 /**
69 * Returns the address book service.
70 *
71 * @return AddressBookService Address book service.
72 */
73 abstract public function getAddressBookService();
74
75
76 /**
77 * Creates a customer read service object.
78 *
79 * @return CustomerReadService Customer read service.
80 */
81 abstract public function createCustomerReadService();
82
83
84 /**
85 * Creates a customer service object.
86 *
87 * @return CustomerService Customer service.
88 */
89 abstract public function createCustomerWriteService();
90 }