"""WAeUP interfaces.

interfaces and components were first introduced for the Zope3 architecture.
However they can also be used for Zope 2.9 applications too such as CMF and CPS.
Currently they are used by the GenericSetup tool to adapts persistent objects
that are worth im- / exporting to their dedicated XMLAdapter.

In our case, we want the state of our vogon tool to be GenericSetup aware.
Please see the exportimport.py file for more details on the corresponding
XMLAdapter.
"""

from zope.interface import Interface

class IWAeUPTool(Interface):
    """WAeUP_SRP
    """

class IWAeUPTable(Interface):
    """Tables to store object relational data
    """

    def addRecord(**data):
        """Adds a record, with the data expressed in the data mapping.
        
        Raises an error if the uid exists.
        """
    
    def deleteRecord(uid):
        """Deletes the record specified by the uid"""
    
    def modifyRecord(uid, **data):
        """Modifies a record, with the data expressed in the data mapping.
        
        Raises an error if the uid does not exist.
        """
        