1##############################################################################
2#
3# Copyright (c) 2001, 2002 Zope Foundation and Contributors.
4# All Rights Reserved.
5#
6# This software is subject to the provisions of the Zope Public License,
7# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
8# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
9# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
11# FOR A PARTICULAR PURPOSE
12#
13##############################################################################
14"""Browser traversal interfaces
15"""
16from zope.interface import Interface
17
18class IAbsoluteURL(Interface):
19
20    def __unicode__():
21        """Returns the URL as a unicode string."""
22
23    def __str__():
24        """Returns an ASCII string with all unicode characters url quoted."""
25
26    def __repr__():
27        """Get a string representation """
28
29    def __call__():
30        """Returns an ASCII string with all unicode characters url quoted."""
31
32    def breadcrumbs():
33        """Returns a tuple like ({'name':name, 'url':url}, ...)
34
35        Name is the name to display for that segment of the breadcrumbs.
36        URL is the link for that segment of the breadcrumbs.
37        """
38
39class IAbsoluteURLAPI(Interface):
40
41    def absoluteURL(ob, request):
42        """Compute the absolute URL of an object """
43