[Zope-Checkins]
SVN: Zope/trunk/lib/python/Products/Five/interfaces.py
synced with Five-1.0 branch
Yvo Schubbe
y.2005- at wcm-solutions.de
Fri May 6 13:11:14 EDT 2005
Log message for revision 30289:
synced with Five-1.0 branch
Changed:
U Zope/trunk/lib/python/Products/Five/interfaces.py
-=-
Modified: Zope/trunk/lib/python/Products/Five/interfaces.py
===================================================================
--- Zope/trunk/lib/python/Products/Five/interfaces.py 2005-05-06 16:13:00 UTC (rev 30288)
+++ Zope/trunk/lib/python/Products/Five/interfaces.py 2005-05-06 17:11:14 UTC (rev 30289)
@@ -14,7 +14,7 @@
##############################################################################
"""Five interfaces
-$Id: interfaces.py 8253 2005-01-13 12:49:07Z regebro $
+$Id: interfaces.py 12029 2005-05-06 17:04:32Z yuppie $
"""
from zope.interface import Interface, Attribute
from zope.interface.interfaces import IInterface
@@ -26,6 +26,7 @@
class IPersistent(Interface):
"""Persistent object"""
+
class IPersistentExtra(Interface):
def bobobase_modification_time():
@@ -37,6 +38,7 @@
def modified_in_version():
"""Was the object modified in this version?"""
+
class IBrowserDefault(Interface):
"""Provide a hook for deciding about the default view for an object"""
@@ -46,46 +48,69 @@
find the method to be published.
"""
+
+class IMenuItemType(IInterface):
+ """Menu item type
+
+ Menu item types are interfaces that define classes of
+ menu items.
+ """
+
+
+#
+# Zope 2.7 core interfaces
+#
+
+# based on Acquisition.*AcquisitionWrapper
class IAcquisitionWrapper(Interface):
+ """ Wrapper object for acquisition.
+ """
- def acquire(name, filter=0, extra=None, expl=0, default=0,
- explicit=1, containment=0):
+ def aq_acquire(name, filter=None, extra=None, explicit=True, default=0,
+ containment=0):
"""Get an attribute, acquiring it if necessary"""
- aq_acquire = acquire
-
def aq_inContextOf(obj, inner=1):
"""Test whether the object is currently in the context of the
argument"""
+
+# based on Acquisition.*plicit
class IAcquisition(Interface):
+ """ Acquire attributes from containers.
+ """
def __of__(context):
"""Return the object in a context"""
- def aq_acquire(name, filter=None, extra=None, explicit=None):
- """Get an attribute, acquiring it if necessary"""
- def aq_get(name, default=None):
- """Get an attribute, acquiring it if necessary."""
+## XXX: these are wrapper attributes and/or module functions
+##
+## def aq_acquire(name, filter=None, extra=None, explicit=None):
+## """Get an attribute, acquiring it if necessary"""
+##
+## def aq_get(name, default=None):
+## """Get an attribute, acquiring it if necessary."""
+##
+## # those are computed attributes, aren't they?
+##
+## def aq_base():
+## """Get the object unwrapped"""
+##
+## def aq_parent():
+## """Get the parent of an object"""
+##
+## def aq_self():
+## """Get the object with the outermost wrapper removed"""
+##
+## def aq_inner():
+## """Get the object with alll but the innermost wrapper removed"""
+##
+## def aq_chain(containment=0):
+## """Get a list of objects in the acquisition environment"""
- # those are computed attributes, aren't they?
- def aq_base():
- """Get the object unwrapped"""
-
- def aq_parent():
- """Get the parent of an object"""
-
- def aq_self():
- """Get the object with the outermost wrapper removed"""
-
- def aq_inner():
- """Get the object with alll but the innermost wrapper removed"""
-
- def aq_chain(containment=0):
- """Get a list of objects in the acquisition environment"""
-
+# based on OFS.SimpleItem.Item and Management.Tabs
class IManageable(Interface):
"""Something that is manageable in the ZMI"""
@@ -107,16 +132,16 @@
def filtered_manage_options(REQUEST=None):
""" """
- def manage_workspace():
+ def manage_workspace(REQUEST):
"""Dispatch to first interface in manage_options"""
def tabs_path_default(REQUEST):
""" """
- def tabs_path_info(script, path,):
+ def tabs_path_info(script, path):
""" """
- def class_manage_path(self):
+ def class_manage_path():
""" """
manage_options = Tuple(
@@ -125,6 +150,8 @@
manage_tabs = Attribute("""Management tabs""")
+
+# based on OFS.FTPInterface.FTPInterface
class IFTPAccess(Interface):
"""Provide support for FTP access"""
@@ -141,6 +168,8 @@
In the case of non-foldoid objects it should return a single
tuple (id,stat) representing itself."""
+
+# copied from webdav.WriteLockInterface.WriteLockInterface
class IWriteLock(Interface):
"""This represents the basic protocol needed to support the write lock
machinery.
@@ -211,6 +240,8 @@
""" Deletes ALL DAV locks on the object - should only be called
by lock management machinery. """
+
+# based on webdav.Resource.Resource
class IDAVResource(IWriteLock):
"""Provide basic WebDAV support for non-collection objects."""
@@ -227,7 +258,7 @@
"""
Init expected HTTP 1.1 / WebDAV headers which are not
currently set by the base response object automagically.
-
+
Note we set an borg-specific header for ie5 :( Also, we sniff
for a ZServer response object, because we don't want to write
duplicate headers (since ZS writes Date and Connection
@@ -240,7 +271,7 @@
col=0, url=None, refresh=0):
""" """
- def HEAD(EQUEST, RESPONSE):
+ def HEAD(REQUEST, RESPONSE):
"""Retrieve resource information without a response body."""
def PUT(REQUEST, RESPONSE):
@@ -268,7 +299,7 @@
def PROPFIND(REQUEST, RESPONSE):
"""Retrieve properties defined on the resource."""
- def PROPPATCH(self, REQUEST, RESPONSE):
+ def PROPPATCH(REQUEST, RESPONSE):
"""Set and/or remove properties defined on the resource."""
def MKCOL(REQUEST, RESPONSE):
@@ -300,6 +331,8 @@
def listDAVObjects():
""" """
+
+# based on OFS.CopySupport.CopySource
class ICopySource(Interface):
"""Interface for objects which allow themselves to be copied."""
@@ -320,22 +353,24 @@
either one is a new object
"""
- def _postCopy(self, container, op=0):
+ def _postCopy(container, op=0):
"""Called after the copy is finished to accomodate special cases.
The op var is 0 for a copy, 1 for a move."""
- def _setId(self, id):
+ def _setId(id):
"""Called to set the new id of a copied object."""
- def cb_isCopyable(self):
+ def cb_isCopyable():
"""Is object copyable? Returns 0 or 1"""
- def cb_isMoveable(self):
+ def cb_isMoveable():
"""Is object moveable? Returns 0 or 1"""
- def cb_userHasCopyOrMovePermission(self):
+ def cb_userHasCopyOrMovePermission():
""" """
+
+# based on OFS.Traversable.Traversable
class ITraversable(Interface):
def absolute_url(relative=0):
@@ -379,18 +414,18 @@
def unrestrictedTraverse(path, default=None, restricted=0):
"""Lookup an object by path,
-
+
path -- The path to the object. May be a sequence of strings or a slash
separated string. If the path begins with an empty path element
(i.e., an empty string or a slash) then the lookup is performed
from the application root. Otherwise, the lookup is relative to
self. Two dots (..) as a path element indicates an upward traversal
to the acquisition parent.
-
+
default -- If provided, this is the value returned if the path cannot
be traversed for any reason (i.e., no object exists at that path or
the object is inaccessible).
-
+
restricted -- If false (default) then no security checking is performed.
If true, then all of the objects along the path are validated with
the security machinery. Usually invoked using restrictedTraverse().
@@ -399,6 +434,8 @@
def restrictedTraverse(path, default=None):
"""Trusted code traversal code, always enforces security"""
+
+# based on AccessControl.Owned.Owned
class IOwned(Interface):
manage_owner = Attribute("""Manage owner view""")
@@ -436,7 +473,7 @@
true then also take ownership of all sub-objects, otherwise
sub-objects retain their ownership information."""
- def userCanTakeOwnership(self):
+ def userCanTakeOwnership():
""" """
def manage_takeOwnership(REQUEST, RESPONSE, recursive=0):
@@ -448,12 +485,14 @@
"""Change the type (implicit or explicit) of ownership.
"""
- def _deleteOwnershipAfterAdd(self):
+ def _deleteOwnershipAfterAdd():
""" """
- def manage_fixupOwnershipAfterAdd(self):
+ def manage_fixupOwnershipAfterAdd():
""" """
+
+# based on App.Undo.UndoSupport
class IUndoSupport(Interface):
manage_UndoForm = Attribute("""Manage Undo form""")
@@ -469,6 +508,8 @@
def manage_undo_transactions(transaction_info=(), REQUEST=None):
""" """
+
+# based on many classes
class IZopeObject(Interface):
isPrincipiaFolderish = Bool(
@@ -481,6 +522,8 @@
description=u"The object's Zope2 meta type",
)
+
+# based on OFS.SimpleItem.Item
class IItem(IZopeObject, IManageable, IFTPAccess, IDAVResource,
ICopySource, ITraversable, IOwned, IUndoSupport):
@@ -504,9 +547,6 @@
attribute of an object directly. The getId method is public.
"""
- def _setId(id):
- """Set the id"""
-
def title_or_id():
"""Returns the title if it is not blank and the id otherwise."""
@@ -520,14 +560,21 @@
tagSearch=None, error_log_url=''):
"""Raise standard error message"""
+
+# based on OFS.SimpleItem.Item_w__name__
class IItemWithName(IItem):
"""Item with name"""
+ def _setId(id):
+ """Set the id"""
+
def getPhysicalPath():
"""Returns a path (an immutable sequence of strings) that can be used
to access this object again later, for example in a copy/paste
operation."""
+
+# based on AccessControl.PermissionMapping.RoleManager
class IPermissionMapping(Interface):
def manage_getPermissionMapping():
@@ -545,6 +592,8 @@
class_permissions=[], REQUEST=None):
"""Change the permission mapping"""
+
+# based on AccessControl.Role.RoleManager
class IRoleManager(IPermissionMapping):
"""An object that has configurable permissions"""
@@ -668,9 +717,13 @@
def possible_permissions():
""" """
+
+# based on OFS.SimpleItem.SimpleItem
class ISimpleItem(IItem, IPersistent, IAcquisition, IRoleManager):
"""Not-so-simple item"""
+
+# based on OFS.CopySupport.CopyContainer
class ICopyContainer(Interface):
"""Interface for containerish objects which allow cut/copy/paste"""
@@ -685,11 +738,11 @@
def _getOb(id, default=None):
""" """
- def manage_CopyContainerFirstItem(self, REQUEST):
+ def manage_CopyContainerFirstItem(REQUEST):
""" """
- def manage_CopyContainerAllItems(self, REQUEST):
- return map(lambda i, s=self: s._getOb(i), tuple(REQUEST['ids']))
+ def manage_CopyContainerAllItems(REQUEST):
+ """ """
def manage_cutObjects(ids=None, REQUEST=None):
"""Put a reference to the objects named in ids in the clip board"""
@@ -739,6 +792,8 @@
(the object will not yet have been connected to the
acquisition hierarchy)."""
+
+# based on App.Management.Navigation
class INavigation(Interface):
"""Basic navigation UI support"""
@@ -757,6 +812,8 @@
INavigation.setTaggedValue('manage_page_style.css', Attribute(""" """))
+
+# based on webdav.Collection.Collection
class IDAVCollection(IDAVResource):
"""The Collection class provides basic WebDAV support for collection
objects. It provides default implementations for all supported
@@ -790,6 +847,8 @@
def listDAVObjects():
""" """
+
+# based on OFS.ObjectManager.ObjectManager
class IObjectManager(IZopeObject, ICopyContainer, INavigation, IManageable,
IAcquisition, IPersistent, IDAVCollection, ITraversable):
"""Generic object manager
@@ -878,6 +937,8 @@
def __getitem__(key):
""" """
+
+# based on OFS.PropertyManager.PropertyManager
class IPropertyManager(Interface):
"""The PropertyManager mixin class provides an object with
transparent property management. An object which wants to
@@ -1034,6 +1095,8 @@
def manage_delProperties(ids=None, REQUEST=None):
"""Delete one or more properties specified by 'ids'."""
+
+# based on OFS.FindSupport.FindSupport
class IFindSupport(Interface):
"""Find support for Zope Folders"""
@@ -1061,6 +1124,8 @@
apply_func=None, apply_path=''):
"""Zope Find interface and apply"""
+
+# based on OFS.Folder.Folder
class IFolder(IObjectManager, IPropertyManager, IRoleManager,
IDAVCollection, IItem, IFindSupport):
"""Folders are basic container objects that provide a standard
@@ -1068,6 +1133,7 @@
management interface and can have arbitrary properties."""
+# copied from OFS.IOrderSupport.IOrderedContainer
class IOrderedContainer(Interface):
""" Ordered Container interface.
@@ -1163,9 +1229,13 @@
Returns -- Number of moved sub-objects
"""
+
+# based on OFS.OrderedFolder.OrderedFolder
class IOrderedFolder(IOrderedContainer, IFolder):
"""Ordered folder"""
+
+# based on OFS.Application.Application
class IApplication(IFolder, IFindSupport):
"""Top-level system object"""
@@ -1222,12 +1292,3 @@
"""Check the global (zclass) registry for problems, which can
be caused by things like disk-based products being deleted.
Return true if a problem is found"""
-
-
-class IMenuItemType(IInterface):
- """Menu item type
-
- Menu item types are interfaces that define classes of
- menu items.
- """
-
\ No newline at end of file
More information about the Zope-Checkins
mailing list