Update of /cvsroot/webware/Webware/MiddleKit/Core
In directory usw-pr-cvs1:/tmp/cvs-serv11738/Core
Modified Files:
Klass.py Model.py ModelUser.py
Log Message:
- Remove ObjectStore.Store var which referred to the first store that happened to be created.
- Remove the store arg to MiddleObject.__init__(store) which was little used and confusing.
- Test suite clean ups.
- Make MKMultipleStores test having 2 different stores. This works now.
- Can now have two WebKit contexts that use MiddleKit without problems.
- Add MKMultipleStores to default set of test suites.
Index: Klass.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Core/Klass.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** Klass.py 31 Mar 2002 12:46:05 -0000 1.15
--- Klass.py 3 May 2002 14:26:28 -0000 1.16
***************
*** 22,26 ****
self._superklass = None
self._subklasses = []
! self._pyClass = None
self._backObjRefAttrs = None
--- 22,26 ----
self._superklass = None
self._subklasses = []
! self._pyClass = 0 # 0 means never computed. None would mean computed, but not found.
self._backObjRefAttrs = None
***************
*** 61,66 ****
def awakeFromRead(self):
! ''' Performs further initialization. Invoked by Klasses after all basic Klass definitions have been read. '''
self._makeAllAttrs()
def _makeAllAttrs(self):
--- 61,73 ----
def awakeFromRead(self):
! """
! Performs further initialization. Invoked by Klasses after all
! basic Klass definitions have been read.
! """
self._makeAllAttrs()
+ # Python classes need to know their MiddleKit classes in
+ # order for MiddleKit.Run.MiddleObject methods to work.
+ # Invoking pyClass() makes that happen.
+ self.pyClass()
def _makeAllAttrs(self):
***************
*** 246,253 ****
Returns the Python class that corresponds to this class. This
request will even result in the Python class' module being
! imported if necessary.
"""
! if self._pyClass is None:
! self._pyClass = self._klassContainer._model.pyClassForName(self.name())
return self._pyClass
--- 253,266 ----
Returns the Python class that corresponds to this class. This
request will even result in the Python class' module being
! imported if necessary. It will also set the Python class
! attribute _mk_klass which is used by MiddleKit.Run.MiddleObject.
!
"""
! if self._pyClass==0:
! if self._klassContainer._model._havePythonClasses:
! self._pyClass = self._klassContainer._model.pyClassForName(self.name())
! self._pyClass._mk_klass = self
! else:
! self._pyClass = None
return self._pyClass
Index: Model.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Core/Model.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Model.py 31 Mar 2002 08:33:22 -0000 1.9
--- Model.py 3 May 2002 14:26:28 -0000 1.10
***************
*** 12,17 ****
'''
! def __init__(self, filename=None, customCoreClasses={}, rootModel=None):
Configurable.__init__(self)
self._filename = None
self._coreClasses = customCoreClasses
--- 12,18 ----
'''
! def __init__(self, filename=None, customCoreClasses={}, rootModel=None, havePythonClasses=1):
Configurable.__init__(self)
+ self._havePythonClasses = havePythonClasses
self._filename = None
self._coreClasses = customCoreClasses
***************
*** 97,101 ****
assert model!=self._rootModel
else:
! model = self.__class__(filename, self._coreClasses, self)
self._allModelsByFilename[filename] = model
self._parents.append(model)
--- 98,102 ----
assert model!=self._rootModel
else:
! model = self.__class__(filename, customCoreClasses=self._coreClasses, rootModel=self, havePythonClasses=self._havePythonClasses)
self._allModelsByFilename[filename] = model
self._parents.append(model)
Index: ModelUser.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Core/ModelUser.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ModelUser.py 3 May 2002 12:44:44 -0000 1.2
--- ModelUser.py 3 May 2002 14:26:28 -0000 1.3
***************
*** 29,32 ****
--- 29,33 ----
def setModel(self, model):
+ assert model
assert self._model is None, 'Can only set model once.'
self._model = model
|