[Zope-Checkins] CVS: Zope3/lib/python/Zope/ComponentArchitecture - GlobalServiceManager.py:1.3 IServiceManager.py:1.3 __init__.py:1.5
Jim Fulton
jim@zope.com
Tue, 2 Jul 2002 19:44:15 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/ComponentArchitecture
In directory cvs.zope.org:/tmp/cvs-serv17483/lib/python/Zope/ComponentArchitecture
Modified Files:
GlobalServiceManager.py IServiceManager.py __init__.py
Log Message:
Refactored service manager and service lookup get routines to be
consistent with the Zope 3 get style, using get and query
routines. Added some missing tests.
Moved the service-manager lookup hooks to
Zope.App.ComponentArchitecture.
=== Zope3/lib/python/Zope/ComponentArchitecture/GlobalServiceManager.py 1.2 => 1.3 ===
def getService(self, name):
"""see IServiceManager interface"""
-
- try:
- return self.__services[name]
- except KeyError:
+ service = self.queryService(name)
+ if service is None:
raise ComponentLookupError(name)
+
+ return service
+
+ def queryService(self, name, default=None):
+ """see IServiceManager interface"""
+
+ return self.__services.get(name, default)
_clear = __init__
=== Zope3/lib/python/Zope/ComponentArchitecture/IServiceManager.py 1.2 => 1.3 ===
"""
+ def getInterfaceFor(name):
+ """Retrieve the service interface for the given name
+ """
+
def getService(name):
"""Retrieve a service implementation
Raises ComponentLookupError if the service can't be found.
+
+ """
+
+ def queryService(name, default=None):
+ """Look for a named service.
+
+ Return the default if the service can't be found.
+
"""
+
=== Zope3/lib/python/Zope/ComponentArchitecture/__init__.py 1.4 => 1.5 ===
return getServiceManager_hook(context)
+def queryServiceManager(context, default=None):
+ try:
+ return getServiceManager(context)
+ except ComponentLookupError:
+ return default
+
def getServiceManager_hook(context): # default hook
return serviceManager
def getService(context, name):
return getServiceManager(context).getService(name)
+def queryService(context, name, default=None):
+ sm = queryServiceManager(context)
+ if sm is None:
+ return default
+ return sm.queryService(name, default)
+
def getServiceDefinitions(context):
return getServiceManager(context).getServiceDefinitions()
@@ -46,14 +58,27 @@
def getNextServiceManager(context): # hookable
return getNextServiceManager_hook(context)
+def queryNextServiceManager(context, default=None):
+ try:
+ return getNextServiceManager_hook(context)
+ except ComponentLookupError:
+ return default
+
def getNextServiceManager_hook(context): #default hook
raise ComponentLookupError
def getNextService(context, name):
- sm=getNextServiceManager(context)
- if sm is not None:
- return sm.getService(name)
- return None
+ service = queryNextService(context, name)
+ if service is None:
+ raise ComponentLookupError('service', name)
+ return service
+
+def queryNextService(context, name, default=None):
+ try:
+ sm = getNextServiceManager(context)
+ except ComponentLookupError:
+ return default
+ return sm.queryService(name, default)
# Utility service