1: <?php
2: /**
3: * Interface definition for resources exporting data.
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: * Interface definition for resources exporting data.
16: *
17: * Copyright 2009-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_Resource
30: {
31: /**
32: * Return the name of the resource.
33: *
34: * @return string The name for the resource.
35: */
36: public function getName();
37:
38: /**
39: * Return the owner of the resource.
40: *
41: * @return Horde_Kolab_FreeBusy_Owner The resource owner.
42: */
43: public function getOwner();
44:
45: /**
46: * Return for whom this resource exports relevant data.
47: *
48: * @return string The user type the exported data of this resource is
49: * relevant for.
50: *
51: * @throws Horde_Kolab_FreeBusy_Exception If retrieving the relevance
52: * information failed.
53: */
54: public function getRelevance();
55:
56: /**
57: * Fetch the resource ACL.
58: *
59: * @return array ACL for this resource.
60: *
61: * @throws Horde_Kolab_FreeBusy_Exception If retrieving the ACL information
62: * failed.
63: */
64: public function getAcl();
65:
66: /**
67: * Fetch the access controls on specific attributes of this
68: * resource.
69: *
70: * @return array Attribute ACL for this resource.
71: *
72: * @throws Horde_Kolab_FreeBusy_Exception If retrieving the attribute ACL
73: * information failed.
74: */
75: public function getAttributeAcl();
76: }
77: