1: <?php
2: /**
3: * The interface describing a list of Kolab folders.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_Storage
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_Storage
12: */
13:
14: /**
15: * The interface describing a list of Kolab folders.
16: *
17: * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
18: *
19: * See the enclosed file COPYING for license information (LGPL). If you
20: * did not receive this file, see http://www.horde.org/licenses/lgpl21.
21: *
22: * @category Kolab
23: * @package Kolab_Storage
24: * @author Gunnar Wrobel <wrobel@pardus.de>
25: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
26: * @link http://pear.horde.org/index.php?package=Kolab_Storage
27: */
28: interface Horde_Kolab_Storage_List
29: extends Horde_Kolab_Storage_Queriable
30: {
31: /** Identifies the basic list query */
32: const QUERY_BASE = 'List';
33:
34: /** Identifies the ACL query */
35: const QUERY_ACL = 'Acl';
36:
37: /** Identifies the share query */
38: const QUERY_SHARE = 'Share';
39:
40: /**
41: * Return the list driver.
42: *
43: * @return Horde_Kolab_Storage_Driver The driver.
44: */
45: public function getDriver();
46:
47: /**
48: * Return the ID of the underlying connection.
49: *
50: * @return string The connection ID.
51: */
52: public function getId();
53:
54: /**
55: * Return the connection parameters.
56: *
57: * @return array The connection parameters.
58: */
59: public function getIdParameters();
60:
61: /**
62: * Returns a representation for the requested folder.
63: *
64: * @param string $folder The path of the folder to return.
65: *
66: * @return Horde_Kolab_Storage_Folder The folder representation.
67: */
68: public function getFolder($folder);
69:
70: /**
71: * Mark the specified folder as the default folder of this type.
72: *
73: * @param string $folder The path of the folder to mark as default.
74: *
75: * @return NULL
76: */
77: public function setDefault($folder);
78:
79: /**
80: * Returns the list of folders visible to the current user.
81: *
82: * @return array The list of folders, represented as strings.
83: */
84: public function listFolders();
85:
86: /**
87: * Returns the folder type annotation as associative array.
88: *
89: * @return array The list folder types with the folder names as key and the
90: * folder type as values.
91: */
92: public function listFolderTypes();
93:
94: /**
95: * Returns the namespace for the list.
96: *
97: * @return Horde_Kolab_Storage_Folder_Namespace The namespace handler.
98: */
99: public function getNamespace();
100: }
101: