commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r5801 - in trunk/gnue-appserver: samples src src/classrep


From: johannes
Subject: r5801 - in trunk/gnue-appserver: samples src src/classrep
Date: Tue, 11 May 2004 02:20:33 -0500 (CDT)

Author: johannes
Date: 2004-05-11 02:20:32 -0500 (Tue, 11 May 2004)
New Revision: 5801

Modified:
   trunk/gnue-appserver/samples/base.gsd
   trunk/gnue-appserver/samples/classrepository.gfd
   trunk/gnue-appserver/samples/sample.gsd
   trunk/gnue-appserver/src/classrep/Property.py
   trunk/gnue-appserver/src/classrep/repository.ini
   trunk/gnue-appserver/src/geasInstance.py
Log:
Added 'gnue_nullable' property to procedures, so calculated fields can result
in a NULL value.


Modified: trunk/gnue-appserver/samples/base.gsd
===================================================================
--- trunk/gnue-appserver/samples/base.gsd       2004-05-11 00:58:15 UTC (rev 
5800)
+++ trunk/gnue-appserver/samples/base.gsd       2004-05-11 07:20:32 UTC (rev 
5801)
@@ -89,6 +89,8 @@
                description="Module that defined this procedure" length="32" 
nullable="N" type="string"/>
         <field name="gnue_name" description="Procedurename without modulename"
                length="35" nullable="N" type="string"/>
+        <field name="gnue_nullable"
+               description="Result of the procedure can contain NULL values" 
nullable="N" type="boolean"/>
         <field name="gnue_scale" description="Scale of the procedures result"
                length="4" type="number"/>
         <field name="gnue_type" description="Type of the procedures result"
@@ -436,6 +438,15 @@
         </row>
         <row>
           <value field="gnue_class">00000000000000000000000000000040</value>
+          <value field="gnue_comment">Result of the procedure can contain NULL 
values</value>
+          <value field="gnue_id">0000000000000000000000000000004C</value>
+          <value field="gnue_module">00000000000000000000000000000000</value>
+          <value field="gnue_name">nullable</value>
+          <value field="gnue_nullable">FALSE</value>
+          <value field="gnue_type">boolean</value>
+        </row>
+        <row>
+          <value field="gnue_class">00000000000000000000000000000040</value>
           <value field="gnue_comment">Scale of the procedures result</value>
           <value field="gnue_id">0000000000000000000000000000004B</value>
           <value field="gnue_length">4</value>

Modified: trunk/gnue-appserver/samples/classrepository.gfd
===================================================================
--- trunk/gnue-appserver/samples/classrepository.gfd    2004-05-11 00:58:15 UTC 
(rev 5800)
+++ trunk/gnue-appserver/samples/classrepository.gfd    2004-05-11 07:20:32 UTC 
(rev 5801)
@@ -65,6 +65,7 @@
       <field name="fldType" field="gnue_type" max_length="35"/>
       <field name="fldLength" field="gnue_length" typecast="number"/>
       <field name="fldScale" field="gnue_scale" typecast="number"/>
+      <field name="fldNullable" field="gnue_nullable" default="FALSE"/>
 
       <!-- After the block got the focus (including record-moves) construct
            the current classname and set it into the unbound blocks field -->
@@ -79,7 +80,7 @@
     </block>
 
 
-    <block name="blkParameter" datasource="dtsParameter" rows="4">
+    <block name="blkParameter" datasource="dtsParameter" rows="3">
       <field name="fldName" field="gnue_name" max_length="35"/>
       <field name="fldType" field="gnue_type" max_length="35"/>
       <field name="fldLength" field="gnue_length" typecast="number"/>
@@ -173,6 +174,8 @@
         text="Length"/>
       <label name="lblScale" c:height="1" c:width="10" c:x="1" c:y="8"
         text="Scale"/>
+      <label name="lblNullable" c:height="1" c:width="10" c:x="1" c:y="9"
+        text="Nullable"/>
       <label name="lblCode" c:height="1" c:width="4" c:x="1" c:y="16"
         text="Code"/>
 
@@ -192,31 +195,33 @@
         block="blkProcedure" field="fldLength"/>
       <entry name="entScale" c:height="1" c:width="10" c:x="10" c:y="8"
         block="blkProcedure" field="fldScale"/>
+      <entry name="entNullable" c:height="1" c:width="2" c:x="10" c:y="9"
+        block="blkProcedure" field="fldNullable" style="checkbox"/>
       <entry name="entCode" c:height="9" c:width="79" c:x="1" c:y="17"
         block="blkProcedure" field="fldCode"/>
 
-      <box name="ParameterBox" c:height="7" c:width="81" c:x="0" c:y="9"
+      <box name="ParameterBox" c:height="6" c:width="81" c:x="0" c:y="10"
         label="Parameters"/>
-      <label name="lblPName" c:height="1" c:width="4" c:x="14" c:y="10"
+      <label name="lblPName" c:height="1" c:width="4" c:x="14" c:y="11"
         text="Name"/>
-      <label name="lblPType" c:height="1" c:width="4" c:x="19" c:y="10"
+      <label name="lblPType" c:height="1" c:width="4" c:x="19" c:y="11"
         text="Type"/>
-      <label name="lblPLength" c:height="1" c:width="6" c:x="37" c:y="10"
+      <label name="lblPLength" c:height="1" c:width="6" c:x="37" c:y="11"
         text="Length"/>
-      <label name="lblPScale" c:height="1" c:width="5" c:x="44" c:y="10"
+      <label name="lblPScale" c:height="1" c:width="5" c:x="44" c:y="11"
         text="Scale"/>
-      <label name="lblPComment" c:height="1" c:width="7" c:x="51" c:y="10"
+      <label name="lblPComment" c:height="1" c:width="7" c:x="51" c:y="11"
         text="Comment"/>
 
-      <entry name="entPName" c:height="1" c:width="16" c:x="2" c:y="11"
+      <entry name="entPName" c:height="1" c:width="16" c:x="2" c:y="12"
         block="blkParameter" field="fldName"/>
-      <entry name="entPType" c:height="1" c:width="17" c:x="19" c:y="11"
+      <entry name="entPType" c:height="1" c:width="17" c:x="19" c:y="12"
         block="blkParameter" field="fldType"/>
-      <entry name="entPLength" c:height="1" c:width="6" c:x="37" c:y="11"
+      <entry name="entPLength" c:height="1" c:width="6" c:x="37" c:y="12"
         block="blkParameter" field="fldLength"/>
-      <entry name="entPScale" c:height="1" c:width="6" c:x="44" c:y="11"
+      <entry name="entPScale" c:height="1" c:width="6" c:x="44" c:y="12"
         block="blkParameter" field="fldScale"/>
-      <entry name="entPComment" c:height="1" c:width="28" c:x="51" c:y="11"
+      <entry name="entPComment" c:height="1" c:width="28" c:x="51" c:y="12"
         block="blkParameter" field="fldComment"/>
 
     </page>

Modified: trunk/gnue-appserver/samples/sample.gsd
===================================================================
--- trunk/gnue-appserver/samples/sample.gsd     2004-05-11 00:58:15 UTC (rev 
5800)
+++ trunk/gnue-appserver/samples/sample.gsd     2004-05-11 07:20:32 UTC (rev 
5801)
@@ -279,6 +279,7 @@
         <column field="gnue_language" type="string(10)"/>
         <column field="gnue_module" type="string(32)"/>
         <column field="gnue_name" type="string(35)"/>
+        <column field="gnue_nullable" type="boolean"/>
       </definition>
       <rows>
         <row>
@@ -289,6 +290,7 @@
           <value field="gnue_language">python</value>
           <value field="gnue_code">print self.address_name</value>
           <value field="gnue_comment">Simple procedure to test 
Appserver</value>
+          <value field="gnue_nullable">TRUE</value>
         </row>
         <row>
           <value field="gnue_id">0000000000000000000000000000101E</value>
@@ -303,6 +305,7 @@
   self.address_name = "(" + self.address_name + ")"
           </value>
           <value field="gnue_comment">Simple procedure to test 
Appserver</value>
+          <value field="gnue_nullable">TRUE</value>
         </row>
         <row>
           <value field="gnue_id">0000000000000000000000000000101G</value>
@@ -314,11 +317,14 @@
 import mx.DateTime
 last = self.address_lastmeeting
 tm   = self.address_meettime
-next = last + mx.DateTime.RelativeDateTime (days=+21, hour = tm.hour, minute = 
tm.minute, second = tm.second)
-return next
-          </value>
+if last is not None and tm is not None:
+  next = last + mx.DateTime.RelativeDateTime (days=+21, hour = tm.hour, minute 
= tm.minute, second = tm.second)
+  return next
+else:
+  return None</value>
           <value field="gnue_comment">Calculate the next meeting date</value>
           <value field="gnue_type">datetime</value>
+          <value field="gnue_nullable">TRUE</value>
         </row>
       </rows>
     </tabledata>

Modified: trunk/gnue-appserver/src/classrep/Property.py
===================================================================
--- trunk/gnue-appserver/src/classrep/Property.py       2004-05-11 00:58:15 UTC 
(rev 5800)
+++ trunk/gnue-appserver/src/classrep/Property.py       2004-05-11 07:20:32 UTC 
(rev 5801)
@@ -258,6 +258,7 @@
     self.gnue_scale    = aProcedure.gnue_scale
     self.gnue_comment  = aProcedure.gnue_comment
     self.gnue_module   = aProcedure.gnue_module
+    self.gnue_nullable = aProcedure.gnue_nullable
 
     self._updateTypeInfo ()
 

Modified: trunk/gnue-appserver/src/classrep/repository.ini
===================================================================
--- trunk/gnue-appserver/src/classrep/repository.ini    2004-05-11 00:58:15 UTC 
(rev 5800)
+++ trunk/gnue-appserver/src/classrep/repository.ini    2004-05-11 07:20:32 UTC 
(rev 5801)
@@ -380,6 +380,17 @@
 gnue_comment   = Scale of the procedures result
 gnue_nullable  = 
 
+[gnue_procedure.gnue_nullable]
+gnue_id        = 0000000000000000000000000000004C
+gnue_class     = 00000000000000000000000000000040
+gnue_module    = 00000000000000000000000000000000
+gnue_name      = nullable
+gnue_type      = boolean
+gnue_length    = 
+gnue_scale     = 
+gnue_comment   = Result of the procedure can contain NULL values
+gnue_nullable  = FALSE
+
 ; -----------------------------------------------------------------------------
 ; parameters
 ; -----------------------------------------------------------------------------

Modified: trunk/gnue-appserver/src/geasInstance.py
===================================================================
--- trunk/gnue-appserver/src/geasInstance.py    2004-05-11 00:58:15 UTC (rev 
5800)
+++ trunk/gnue-appserver/src/geasInstance.py    2004-05-11 07:20:32 UTC (rev 
5801)
@@ -297,8 +297,9 @@
                                params)
     result = method (**params)
     if (proceduredef.gnue_type is None) != (result is None):
-      raise ResultTypeError, (proceduredef.fullName, proceduredef.gnue_type,
-                              result)
+      if result is not None or not proceduredef.gnue_nullable:
+        raise ResultTypeError, (proceduredef.fullName, proceduredef.gnue_type,
+                                result)
     return result
 
   # ---------------------------------------------------------------------------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]