cybertools/stateful/interfaces.py
helmutm 0dda2f4b12 added simple 'stateful' (sort of mini-workflow) package
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1539 fd906abe-77d9-0310-91a1-e0d9ade77398
2007-01-04 11:11:32 +00:00

61 lines
1.9 KiB
Python

#
# Copyright (c) 2007 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""
Interfaces for the `stateful` package.
$Id$
"""
from zope.interface import Interface
class IStateful(Interface):
""" Provides basic methods for stateful objects.
"""
def getState():
""" Return the workflow state of the object.
"""
def doTransition(transition):
""" Execute a transition; the transition is specified by its id.
"""
def getAvailableTransitions():
""" Return the transitions for this object that are available in
the current state. The implementation of the returned transition
objects is not specified, they may be an action dictionaries or
special Transition objects.
"""
class IStatesDefinition(Interface):
""" A simple definition for a set of states and transitions between them,
Similar to an entity-based workflow definition.
"""
def doTransitionFor(object, transition):
""" Execute a transition for the object given;
the transition is specified by its id.
"""
def getAvailableTransitionsFor(object):
""" Return the transitions available for this object in its current state.
"""