1: <?php
2: /**
3: * The factory interface.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_FreeBusy
9: * @author Gunnar Wrobel <wrobel@pardus.de>
10: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
11: * @link http://pear.horde.org/index.php?package=Kolab_FreeBusy
12: */
13:
14: /**
15: * The factory interface.
16: *
17: * Copyright 2011-2012 Horde LLC (http://www.horde.org/)
18: *
19: * See the enclosed file COPYING for license information (LGPL). If you did not
20: * receive this file, see
21: * http://www.horde.org/licenses/lgpl21.
22: *
23: * @category Kolab
24: * @package Kolab_FreeBusy
25: * @author Gunnar Wrobel <wrobel@pardus.de>
26: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
27: * @link http://pear.horde.org/index.php?package=Kolab_FreeBusy
28: */
29: interface Horde_Kolab_FreeBusy_Factory
30: {
31: /**
32: * Create the object representing the current request.
33: *
34: * @return Horde_Controller_Request The current request.
35: *
36: * @throws Horde_Exception
37: */
38: public function createRequest();
39:
40: /**
41: * Create the instance that will output the response.
42: *
43: * @return Horde_Controller_ResponseWriter The response writer.
44: *
45: * @throws Horde_Exception
46: */
47: public function createResponseWriter();
48:
49: /**
50: * Create the view object.
51: *
52: * @return Horde_View The view helper.
53: */
54: public function createView();
55:
56: /**
57: * Return the logger.
58: *
59: * @return Horde_Log_Logger The logger.
60: */
61: public function createLogger();
62:
63: /**
64: * Create the mapper.
65: *
66: * @return Horde_Route_Mapper The mapper.
67: *
68: * @throws Horde_Exception
69: */
70: public function createMapper();
71:
72: /**
73: * Create the dispatcher.
74: *
75: * @return Horde_Controller_Dispatcher The dispatcher.
76: */
77: public function createRequestConfiguration();
78:
79: /**
80: * Create the user representation.
81: *
82: * @return Horde_Kolab_FreeBusy_User The user.
83: */
84: public function createUser();
85:
86: /**
87: * Create the owner representation.
88: *
89: * @return Horde_Kolab_FreeBusy_Owner The owner.
90: */
91: public function createOwner();
92:
93: /**
94: * Create the data provider.
95: *
96: * @return Horde_Kolab_FreeBusy_Provider The provider.
97: */
98: public function createProvider();
99: }
100: