1 # Copyright (c) 2008 by Florian Friesdorf
3 # GNU Affero General Public License (AGPL)
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as
7 # published by the Free Software Foundation; either version 3 of the
8 # License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Affero General Public License for more details.
15 # You should have received a copy of the GNU Affero General Public
16 # License along with this program. If not, see
17 # <http://www.gnu.org/licenses/>.
20 __author__
= "Florian Friesdorf <flo@chaoflow.net>"
21 __docformat__
= "plaintext"
23 from zope
.interface
import Interface
24 from zope
.interface
.interfaces
import IInterface
25 from zope
.schema
import TextLine
28 class IPropertyInterface(IInterface
):
29 """Interfaces providing this interface are recognizes as interfaces defining
33 class IPropertyProvider(Interface
):
34 """A property provider provides certain interfaces that provide
35 IPropertyInterface, and makes property values available through attribute
36 access. Other interfaces that might be provided also are ignored.
38 For each attribute a value needs to be retrievable (at least None),
39 otherwise an AttributeError will be raised.
41 The principal will carry copies of the properties as attributes and provide
42 the same IPropertyInterface-providing interfaces.
46 description
=u
"The principal id this provider works for",
49 class IPropertyProviders(Interface
):
50 """A utility that returns property providers for principals
53 """returns list of IPropertyProvider for principal id