00001 from GBSLogger import Log, logger
00002
00003 class GBSModelRegistry :
00004 """A registry for holding GBSModels"""
00005
00006 def __init__(self):
00007 self.__registry = {}
00008
00009 def AddModel(self,model) :
00010 Log(self,logger.SYNOPSIS,"Registering a GBSModel named '" + str(model.GetName()) + "'")
00011 self.__registry[model.GetName()] = model
00012
00013 def GetModel(self,model) :
00014 if not self.__registry.has_key(model):
00015 print "Cannot find model " + str(model) + " in GBSModelRegistry"
00016 raise NameError
00017 return self.__registry[model]
00018
00019 def GetRegistry(self): return self.__registry
00020
00021 def CreateObject(self,model,role,object_name,parent) :
00022 Log(self,logger.DEBUG,"GBSModelRegistry: Locating model '" + str(model) + "'")
00023 m = self.GetModel(model)
00024 Log(self,logger.DEBUG,"GBSModelRegistry: Model located, now creating object for role '" + str(role) + "'")
00025 return m.CreateObject(role,object_name,parent)
00026
00027
00028
00029
00030 __modelRegistry = GBSModelRegistry()
00031
00032 def GetModelRegistry(): return __modelRegistry