[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5915 - trunk/gnue-appserver/src/classrep
From: |
johannes |
Subject: |
r5915 - trunk/gnue-appserver/src/classrep |
Date: |
Wed, 7 Jul 2004 17:13:55 -0500 (CDT) |
Author: johannes
Date: 2004-06-16 02:02:52 -0500 (Wed, 16 Jun 2004)
New Revision: 5915
Modified:
trunk/gnue-appserver/src/classrep/Property.py
trunk/gnue-appserver/src/classrep/helpers.py
Log:
Reference types won't fail if they're from a different module than the defining
class.
Modified: trunk/gnue-appserver/src/classrep/Property.py
===================================================================
--- trunk/gnue-appserver/src/classrep/Property.py 2004-06-15 18:45:00 UTC
(rev 5914)
+++ trunk/gnue-appserver/src/classrep/Property.py 2004-06-16 07:02:52 UTC
(rev 5915)
@@ -222,7 +222,7 @@
"""
res = helpers.verifyType (self.gnue_type, self.gnue_length,
- self.gnue_scale, self.module.classes)
+ self.gnue_scale, self.module.modules)
self.isReference = res is not None
self.referencedClass = res
self.isValidated = True
Modified: trunk/gnue-appserver/src/classrep/helpers.py
===================================================================
--- trunk/gnue-appserver/src/classrep/helpers.py 2004-06-15 18:45:00 UTC
(rev 5914)
+++ trunk/gnue-appserver/src/classrep/helpers.py 2004-06-16 07:02:52 UTC
(rev 5915)
@@ -84,34 +84,42 @@
# Check if a given reference is valid
# -----------------------------------------------------------------------------
-def verifyReference (reference, length, scale, classes):
+def verifyReference (reference, length, scale, modules):
"""
This function verifies if @reference is a valid reference type. @length and
- @scale must be None or zero and the given class dictionary (@classes) must
- have a classe named @reference.
+ @scale must be None or zero and the given module dictionary must
+ have a classe named 'reference'.
+ @param reference: the classname to be verified
+ @param length: the length of the type definition
+ @param scale: the length of the type definition
+ @param modules: module dictionary to be used for lookups
+ @return: None if reference is an invalid classname, or the class object
+ otherwise.
"""
- if classes.has_key (reference):
- if length is not None and length:
- raise TypeFormatError, u_("Reference types must not have a 'length'")
- if scale is not None and scale:
- raise TypeFormatError, u_("Reference types must not have a 'scale'")
+ for module in modules.values ():
+ if module.classes.has_key (reference):
+ if length is not None and length:
+ raise TypeFormatError, u_("Reference types must not have a 'length'")
+ if scale is not None and scale:
+ raise TypeFormatError, u_("Reference types must not have a 'scale'")
- return True
- else:
- return False
+ return module.classes [reference]
+ return None
+
# -----------------------------------------------------------------------------
# Verify a given type
# -----------------------------------------------------------------------------
-def verifyType (typename, length, scale, classes):
+def verifyType (typename, length, scale, modules):
"""
This function verifies a given type, length and scale combination, optionally
- using the given class dictionary for lookups of references.
+ using the given module dictionary for lookups of references.
"""
- if verifyReference (typename, length, scale, classes):
- return classes [typename]
+ ref = verifyReference (typename, length, scale, modules)
+ if ref is not None:
+ return ref
else:
verifyBasetype (typename, length, scale)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5915 - trunk/gnue-appserver/src/classrep,
johannes <=