[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r6256 - in trunk/gnue-appserver/src: gcd gld
From: |
johannes |
Subject: |
r6256 - in trunk/gnue-appserver/src: gcd gld |
Date: |
Mon, 6 Sep 2004 04:31:36 -0500 (CDT) |
Author: johannes
Date: 2004-09-06 04:31:34 -0500 (Mon, 06 Sep 2004)
New Revision: 6256
Modified:
trunk/gnue-appserver/src/gcd/GCParser.py
trunk/gnue-appserver/src/gcd/readgcd.py
trunk/gnue-appserver/src/gld/GLParser.py
trunk/gnue-appserver/src/gld/readgld.py
Log:
*) Moved messages from gcd into gld
*) Changed toplevel object in GLD from labels to module
Modified: trunk/gnue-appserver/src/gcd/GCParser.py
===================================================================
--- trunk/gnue-appserver/src/gcd/GCParser.py 2004-09-06 09:30:17 UTC (rev
6255)
+++ trunk/gnue-appserver/src/gcd/GCParser.py 2004-09-06 09:31:34 UTC (rev
6256)
@@ -194,29 +194,6 @@
},
'ParentTags': ('procedure',)
},
-
- 'messages': {
- 'BaseClass': GCMessages,
- 'Attributes': {
- 'language': {
- 'Required': True,
- 'Typecast': GTypecast.text}
- }, # Attributes
- 'ParentTags': ('module',)
- }, # messages
-
- 'message': {
- 'BaseClass': GCMessage,
- 'Attributes': {
- 'name': {
- 'Required': True,
- 'Unique': True,
- 'Typecast': GTypecast.name}
- }, # Attributes
- 'ParentTags' : ('messages',),
- 'MixedContent' : True,
- 'KeepWhitespace': True,
- }, # message
}
return GParser.buildImportableTags ('module', xmlElements)
@@ -461,40 +438,3 @@
class GCParameter (GCTypeDefinition):
def __init__ (self, parent):
GCTypeDefinition.__init__ (self, parent, objType = 'GCParameter')
-
-
-# =============================================================================
-# This class implements a collection of messages
-# =============================================================================
-
-class GCMessages (GCObject):
- def __init__ (self, parent):
- GCObject.__init__ (self, parent, type = 'GCMessages')
- self._inits.extend ([None, self._validate])
-
- def _validate (self):
- if not len (self.language):
- raise MissingLanguageError
-
- self.module = self._parent.name
-
-
-# =============================================================================
-# This class implements a single message
-# =============================================================================
-
-class GCMessage (GCObject):
- def __init__ (self, parent):
- GCObject.__init__ (self, parent, type = 'GCMessage')
- self._inits.extend ([None, self._validate])
-
- def _validate (self):
- if not len (self.name):
- raise MissingNameError, _("Message tag has an empty 'name' attribute")
-
- if '_' in self.name:
- self.name = self.name.split ('_') [-1]
-
- self.language = self._parent.language
- self.module = self._parent.module
- self.fullName = Namespace.createName (self._parent.module, self.name)
Modified: trunk/gnue-appserver/src/gcd/readgcd.py
===================================================================
--- trunk/gnue-appserver/src/gcd/readgcd.py 2004-09-06 09:30:17 UTC (rev
6255)
+++ trunk/gnue-appserver/src/gcd/readgcd.py 2004-09-06 09:31:34 UTC (rev
6256)
@@ -150,7 +150,6 @@
self.properties = {}
self.procedures = {}
self.parameters = {}
- self.messages = {}
for item in range (len (self._files)):
print o (u_("Loading gcd file '%s' ...") % self._args [item])
@@ -184,9 +183,6 @@
elif sObject._type == 'GCClass':
self.__translateClass (sObject)
- elif sObject._type == 'GCMessage':
- self.__translateMessage (sObject)
-
# ---------------------------------------------------------------------------
@@ -327,17 +323,6 @@
# ---------------------------------------------------------------------------
- # Translate a message into a dictionary for later classrep update
- # ---------------------------------------------------------------------------
-
- def __translateMessage (self, sObject):
- self.messages [sObject.fullName] = { \
- 'gnue_language': sObject.language,
- 'gnue_name' : sObject.name,
- 'gnue_text' : sObject.getChildrenAsContent (),
- 'gnue_module' : sObject.module}
-
- # ---------------------------------------------------------------------------
# Get a dictionary with all keys listed in tags and values from sObject
# ---------------------------------------------------------------------------
@@ -410,7 +395,6 @@
self._updateProperties ()
self._updateProcedures ()
self._updateParameter ()
- self._updateMessages ()
# ---------------------------------------------------------------------------
@@ -676,59 +660,6 @@
# ---------------------------------------------------------------------------
- # Update/add messages to the class repository
- # ---------------------------------------------------------------------------
-
- def _updateMessages (self):
- attributes = {'name' : "dts_gnueMessage",
- 'database': self.OPTIONS ['connection'],
- 'table' : 'gnue_message'}
-
- fieldList = ['gnue_id', 'gnue_module', 'gnue_language', 'gnue_name',
- 'gnue_text']
-
- self._dtsMessage = GDataSource.DataSourceWrapper (
- connections = self.connections,
- attributes = attributes,
- fields = fieldList,
- unicodeMode = True)
-
- stat = [0, 0, 0] # inserted, updated, unchanged
-
- for message in self.messages.values ():
-
- moduleId = self.__findModule (message ['gnue_module'])
-
- cond = GConditions.buildConditionFromDict ( \
- {'gnue_module' : moduleId,
- 'gnue_language': message ['gnue_language'],
- 'gnue_name' : message ['gnue_name']})
- resultSet = self._dtsMessage.createResultSet (cond)
-
- if resultSet.firstRecord () is None:
- resultSet.insertRecord ()
- modifier = 0
- message ['gnue_id'] = self.__generateId ()
- else:
- message ['gnue_id'] = resultSet.current.getField ('gnue_id')
- modifier = 1
-
- message ['gnue_module'] = moduleId
-
- if not self.doUpdate (resultSet, message):
- modifier += 1
-
- stat [modifier] += 1
-
- if stat [0] + stat [1]:
- self.connections.commitAll ()
-
- print o (u_(" Messages : %(ins)3d inserted, %(upd)3d updated, %(kept)3d "
- "unchanged.") \
- % {'ins': stat [0], 'upd': stat [1], 'kept': stat [2]})
-
-
- # ---------------------------------------------------------------------------
# Perform an update on the given resultset using a given data dictionary
# ---------------------------------------------------------------------------
Modified: trunk/gnue-appserver/src/gld/GLParser.py
===================================================================
--- trunk/gnue-appserver/src/gld/GLParser.py 2004-09-06 09:30:17 UTC (rev
6255)
+++ trunk/gnue-appserver/src/gld/GLParser.py 2004-09-06 09:31:34 UTC (rev
6256)
@@ -1,4 +1,4 @@
-# GNU Enterprise Appserver - GNUe Label Definitions - XML-Parser
+# GNU Enterprise Appserver - GNUe Language Definitions - XML-Parser
#
# Copyright 2001-2004 Free Software Foundation
#
@@ -52,13 +52,14 @@
% itemname
Error.__init__ (self, msg)
+
# =============================================================================
# load an XML object tree from a given stream and return it's root object
# =============================================================================
def loadFile (stream, initialize = True):
- return GParser.loadXMLObject (stream, xmlSchemaHandler, 'GLLabels',
- 'labels', initialize)
+ return GParser.loadXMLObject (stream, xmlSchemaHandler, 'GLModule',
+ 'module', initialize)
# =============================================================================
@@ -70,11 +71,11 @@
if xmlElements is None:
xmlElements = {
- 'labels': {
- 'BaseClass' : GLLabels,
+ 'module': {
+ 'BaseClass' : GLModule,
'Required' : True,
'Attributes': {
- 'module': {
+ 'name': {
'Required': True,
'Unique' : True,
'Typecast': GTypecast.name},
@@ -95,7 +96,7 @@
'page': {
'Typecast': GTypecast.text},
},
- 'ParentTags': ('labels',)
+ 'ParentTags': ('module',)
},
'property': {
@@ -145,9 +146,22 @@
'KeepWhitespace': True,
'ParentTags' : ('class',)
},
+
+ 'message': {
+ 'BaseClass': GLMessage,
+ 'Attributes': {
+ 'name': {
+ 'Required': True,
+ 'Unique' : True,
+ 'Typecast': GTypecast.name},
+ },
+ 'MixedContent' : True,
+ 'KeepWhitespace': True,
+ 'ParentTags' : ('module',)
+ },
}
- return GParser.buildImportableTags ('labels', xmlElements)
+ return GParser.buildImportableTags ('module', xmlElements)
# =============================================================================
@@ -187,7 +201,7 @@
# ---------------------------------------------------------------------------
def _validate (self):
- self.module = self.findParentOfType ('GLLabels').module
+ self.module = self.findParentOfType ('GLModule').name
self.fullName = Namespace.createName (self.module, self.name)
if not hasattr (self, 'page'):
@@ -208,13 +222,13 @@
# =============================================================================
-# The labels object, root object of a GLD tree
+# The module object, root object of a GLD tree
# =============================================================================
-class GLLabels (GRootObj.GRootObj, GLObject):
+class GLModule (GRootObj.GRootObj, GLObject):
def __init__ (self, parent = None):
- GRootObj.GRootObj.__init__ (self, 'labels', getXMLelements,
self.__module__)
- GLObject.__init__ (self, parent, type = 'GLLabels')
+ GRootObj.GRootObj.__init__ (self, 'module', getXMLelements,
self.__module__)
+ GLObject.__init__ (self, parent, type = 'GLModule')
# =============================================================================
@@ -233,7 +247,7 @@
# ---------------------------------------------------------------------------
def _validate (self):
- if not isinstance (self._parent, GLLabels):
+ if not isinstance (self._parent, GLModule):
raise NoModuleError, self.name
nameParts = self.name.split ('_')
@@ -244,7 +258,7 @@
(self.module, self.name) = nameParts [:2]
if not hasattr (self, 'module'):
- self.module = self._parent.module
+ self.module = self._parent.name
self.fullName = Namespace.createName (self.module, self.name)
@@ -265,3 +279,23 @@
def __init__ (self, parent):
GLClassElement.__init__ (self, parent, objType = 'GLProcedure')
+# =============================================================================
+# The message object
+# =============================================================================
+
+class GLMessage (GLObject):
+ def __init__ (self, parent):
+ GLObject.__init__ (self, parent, type = 'GLMessage')
+ self.fullName = None
+ self._inits.extend ([None, self._validate])
+
+
+ # ---------------------------------------------------------------------------
+ # Validate a message
+ # ---------------------------------------------------------------------------
+
+ def _validate (self):
+ parent = self.findParentOfType ('GLModule')
+ self.module = parent.name
+ self.language = parent.language
+ self.fullName = Namespace.createName (self.module, self.name)
Modified: trunk/gnue-appserver/src/gld/readgld.py
===================================================================
--- trunk/gnue-appserver/src/gld/readgld.py 2004-09-06 09:30:17 UTC (rev
6255)
+++ trunk/gnue-appserver/src/gld/readgld.py 2004-09-06 09:31:34 UTC (rev
6256)
@@ -1,4 +1,4 @@
-# GNU Enterprise Appserver - GNUe Label Definition - Import GLDs
+# GNU Enterprise Appserver - GNUe Language Definition - Import GLDs
#
# Copyright 2001-2004 Free Software Foundation
#
@@ -80,7 +80,7 @@
VERSION = VERSION
COMMAND = "gnue-readgld"
USAGE = "%s %s" % (GClientApp.GClientApp.USAGE, "file file ...")
- SUMMARY = _("Read GNUe Layout Definitions and update the class repository")
+ SUMMARY = _("Read GNUe Language Definitions and update the class repository")
# ---------------------------------------------------------------------------
# Constructor
@@ -218,8 +218,9 @@
self.__checkOptions ()
self.__openDatasources ()
- self.modules = {}
- self.classes = {}
+ self.modules = {}
+ self.classes = {}
+ self.messages = {}
for item in range (len (self._files)):
print o(u_("Loading gld file '%s' ...") % self._args [item])
@@ -232,6 +233,7 @@
self._files [item].close ()
self.updateRepository ()
+ self.updateMessages ()
# ---------------------------------------------------------------------------
@@ -245,12 +247,15 @@
@param sObject: current GLD object to be processed
"""
- if sObject._type == 'GLLabels':
+ if sObject._type == 'GLModule':
self.__translateModule (sObject)
elif sObject._type == 'GLClass':
self.__translateClass (sObject)
+ elif sObject._type == 'GLMessage':
+ self.__translateMessage (sObject)
+
# ---------------------------------------------------------------------------
@@ -265,7 +270,7 @@
@param aModule: GLD Layout object to be processed.
"""
- mName = aModule.module
+ mName = aModule.name
self.modules [mName] = self.fetchTags (aModule, ['language'])
self.modules [mName] ['gnue_id'] = self.__findModule (mName)
self.__module = self.modules [mName]
@@ -327,7 +332,18 @@
defs ['properties'].append (pDef)
+ # ---------------------------------------------------------------------------
+ # Translate a message into a dictionary for later classrep update
+ # ---------------------------------------------------------------------------
+ def __translateMessage (self, sObject):
+ self.messages [sObject.fullName] = { \
+ 'gnue_language': sObject.language,
+ 'gnue_name' : sObject.name,
+ 'gnue_text' : sObject.getChildrenAsContent (),
+ 'gnue_module' : sObject.module}
+
+
# ---------------------------------------------------------------------------
# Find a class by name and module
# ---------------------------------------------------------------------------
@@ -448,12 +464,65 @@
if stat [0] + stat [1]:
self.connections.commitAll ()
- print u_(" Labels: %(ins)3d inserted, %(upd)3d updated, %(kept)3d "
+ print u_(" Labels : %(ins)3d inserted, %(upd)3d updated, %(kept)3d "
"unchanged.") \
% {'ins': stat [0], 'upd': stat [1], 'kept': stat [2]}
# ---------------------------------------------------------------------------
+ # Update/add messages to the class repository
+ # ---------------------------------------------------------------------------
+
+ def updateMessages (self):
+ attributes = {'name' : "dts_gnueMessage",
+ 'database': self.OPTIONS ['connection'],
+ 'table' : 'gnue_message'}
+
+ fieldList = ['gnue_id', 'gnue_module', 'gnue_language', 'gnue_name',
+ 'gnue_text']
+
+ self._dtsMessage = GDataSource.DataSourceWrapper (
+ connections = self.connections,
+ attributes = attributes,
+ fields = fieldList,
+ unicodeMode = True)
+
+ stat = [0, 0, 0] # inserted, updated, unchanged
+
+ for message in self.messages.values ():
+
+ moduleId = self.__findModule (message ['gnue_module'])
+
+ cond = GConditions.buildConditionFromDict ( \
+ {'gnue_module' : moduleId,
+ 'gnue_language': message ['gnue_language'],
+ 'gnue_name' : message ['gnue_name']})
+ resultSet = self._dtsMessage.createResultSet (cond)
+
+ if resultSet.firstRecord () is None:
+ resultSet.insertRecord ()
+ modifier = 0
+ message ['gnue_id'] = self.__generateId ()
+ else:
+ message ['gnue_id'] = resultSet.current.getField ('gnue_id')
+ modifier = 1
+
+ message ['gnue_module'] = moduleId
+
+ if not self.doUpdate (resultSet, message):
+ modifier += 1
+
+ stat [modifier] += 1
+
+ if stat [0] + stat [1]:
+ self.connections.commitAll ()
+
+ print o (u_(" Messages: %(ins)3d inserted, %(upd)3d updated, %(kept)3d "
+ "unchanged.") \
+ % {'ins': stat [0], 'upd': stat [1], 'kept': stat [2]})
+
+
+ # ---------------------------------------------------------------------------
# Perform an update on the given resultset using a given data dictionary
# ---------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r6256 - in trunk/gnue-appserver/src: gcd gld,
johannes <=