/[papo]/gnue/appserver/src/_featuretest/thekitchensink.godl
ViewVC logotype

Diff of /gnue/appserver/src/_featuretest/thekitchensink.godl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by charlie, Tue Aug 27 18:15:51 2002 UTC revision 1.5 by styxman, Fri Nov 8 16:38:42 2002 UTC
# Line 1  Line 1 
1  <?xml version="1.0"?>  <?xml version="1.0"?>
2    <!--
3    This file serves no real functional purpose other than to amuse
4    and to present various markup allowed in GODL which will be used to
5    test the various parsers.
6    
7    
8    Stuff that belongs to the 'default' module. It is used to show you do
9    not need to declare things in a module to have valid GODL. Also helps
10    in determining how to handle things that are not contained in a
11    module.
12    -->
13  <odl_specification>  <odl_specification>
14    <odl_definition>    <odl_definition>
15      <typedef>      <typedef>
# Line 17  Line 28 
28        </declarators>        </declarators>
29      </typedef>      </typedef>
30    
31      <typdef>      <typedef>
32        <type_spec>        <type_spec>
33          <sequence><type_spec>float</type_spec></sequence>          <sequence><type_spec>float</type_spec></sequence>
34        </type_spec>        </type_spec>
35        <decalrators>        <declarators>
36          <declarator>          <declarator>FloatSequenceType</declarator>
           FloatSequenceType  
         </declarator>  
37        </declarators>        </declarators>
38      </typedef>      </typedef>
39    
40      <typdef>      <typedef>
41        <type_spec>string</type_spec>        <type_spec>string</type_spec>
42        <declarators>        <declarators>
43          <declarator>StringType</declarator>          <declarator>StringType</declarator>
# Line 115  Line 124 
124        <type_spec><struct>Bar</struct></type_spec>        <type_spec><struct>Bar</struct></type_spec>
125        <declarators>        <declarators>
126          <declarator>bar</declarator>          <declarator>bar</declarator>
127        </declarator>        </declarators>
128      </typedef>      </typedef>
129    
130      <typedef>      <typedef>
# Line 130  Line 139 
139        <declarators>        <declarators>
140          <declarator>trout_type</declarator>          <declarator>trout_type</declarator>
141        </declarators>        </declarators>
     </tyepdef>  
142        </typedef>
143    
144        <typedef>
145          <type_spec>
146            <dictionary>
147              <key>
148                <type_spec>float</type_spec>
149              </key>
150              <value>
151                <type_spec>float</type_spec>
152              </value>
153            </dictionary>
154          </type_spec>
155          <declarators>
156            <declarator>DictionaryType</declarator>
157          </declarators>
158        </typedef>
159    
160        <typedef>
161          <type_spec>
162            <set><type_spec>float</type_spec></set>
163          </type_spec>
164          <declarators>
165            <declarator>SetType</declarator>
166          </declarators>
167        </typedef>
168    
169        <typedef>
170          <type_spec>
171            <list><type_spec>float</type_spec></list>
172          </type_spec>
173          <declarators>
174            <declarator>ListType</declarator>
175          </declarators>
176        </typedef>
177    
178        <typedef>
179          <type_spec>
180            <bag><type_spec>float</type_spec></bag>
181          </type_spec>
182          <declarators>
183            <declarator>BagType</declarator>
184          </declarators>
185        </typedef>
186    
187        <!-- Forward declarations -->
188        <interface id="GNUe::Sadist"/>
189        <class id="GNUe::Goats::Chillywilly"/>
190    
191        <const id="BIGINT">
192          <type_spec>
193            <unsigned_long>10000L</unsigned_long>
194          </type_spec>
195        </const>
196    
197        <exception id="NoModuleError">
198          <members>
199            <member>
200              <type_spec>string</type_spec>
201              <declarators>
202                <declarator>what</declarator>
203              </declarators>
204            </member>
205            <member>
206              <type_spec>short</type_spec>
207              <declarators>
208                <declarator>line</declarator>
209              </declarators>
210            </member>
211          </members>
212        </exception>
213    
214        <exception id="FubarError"/>
215    
216        <interface id="KungFu">
217          <operation id="Kick"/>
218    
219          <operation id="Punch"/>
220    
221        </interface>
222    
223        <class id="Dragon">
224          <inherits>
225            <interface>KungFu</interface>
226          </inherits>
227    
228          <attribute>
229            <type_spec>string</type_spec>
230            <name>sensai</name>
231          </attribute>
232    
233          <operation id="dragonKick"/>
234    
235          <operation id="dragonPunch"/>
236        </class>
237    
238        <module id="GNUe">
239          <odl_specification>
240            <odl_definition>
241    
242              <!-- Tyep declarations -->
243      
244              <!-- base types -->
245              <typedef>
246                <type_spec>float</type_spec>
247                <declarators>
248                  <declarator>Float</declarator>
249                </declarators>
250              </typedef>
251    
252              <typedef>
253                <type_spec>double</type_spec>
254                <declarators>
255                  <declarator>Double</declarator>
256                </declarators>
257              </typedef>
258    
259              <typedef>
260                <type_spec>long</type_spec>
261                <declarators>
262                  <declarator>Long</declarator>
263                </declarators>
264              </typedef>
265    
266              <typedef>
267                <type_spec>long long</type_spec>
268                <declarators>
269                  <declarator>Long Long</declarator>
270                </declarators>
271              </typedef>
272    
273              <typedef>
274                <type_spec>short</type_spec>
275                <declarators>
276                  <declarator>Short</declarator>
277                </declarators>
278              </typedef>
279    
280              <typedef>
281                <type_spec>unsigned long</type_spec>
282                <declarators>
283                  <declarator>Unsigned Long</declarator>
284                </declarators>
285              </typedef>
286    
287              <typedef>
288                <type_spec>unsigned short</type_spec>
289                <declarators>
290                  <declarator>Unsigned Short</declarator>
291                </declarators>
292              </typedef>
293    
294              <typedef>
295                <type_spec>char</type_spec>
296                <declarators>
297                  <declarator>Char</declarator>
298                </declarators>
299              </typedef>
300    
301              <typedef>
302                <type_spec>boolean</type_spec>
303                <declarators>
304                  <declarator>Bool</declarator>
305                </declarators>
306              </typedef>
307    
308              <typedef>
309                <type_spec>octet</type_spec>
310                <declarators>
311                  <declarator>Octet</declarator>
312                </declarators>
313              </typedef>
314    
315              <typedef>
316                <type_spec>date</type_spec>
317                <declarators>
318                  <declarator>Date</declarator>
319                </declarators>
320              </typedef>
321    
322              <typedef>
323                <type_spec>time</type_spec>
324                <declarators>
325                  <declarator>Time</declarator>
326                </declarators>
327              </typedef>
328    
329              <typedef>
330                <type_spec>interval</type_spec>
331                <declarators>
332                  <declarator>Interval</declarator>
333                </declarators>
334              </typedef>
335    
336              <typedef>
337                <type_spec>timestamp</type_spec>
338                <declarators>
339                  <declarator>Timestamp</declarator>
340                </declarators>
341              </typedef>
342    
343              <!-- array types -->
344              <typedef>
345                <type_spec>
346                  <array><type_spec>float</type_spec></array>
347                </type_spec>
348                <declarators>
349                  <declarator>FloatArray</declarator>
350                </declarators>
351              </typedef>
352    
353              <typedef>
354                <type_spec>
355                  <array><type_spec>float</type_spec></array>
356                </type_spec>
357                <declarators>
358                  <declarator>FloatArray</declarator>
359                </declarators>
360              </typedef>
361    
362              <typedef>
363                <type_spec>
364                  <array><type_spec>double</type_spec></array>
365                </type_spec>
366                <declarators>
367                  <declarator>DoubleArray</declarator>
368                </declarators>
369              </typedef>
370    
371              <typedef>
372                <type_spec>
373                  <array><type_spec>long long</type_spec></array>
374                </type_spec>
375                <declarators>
376                  <declarator>LongLongArray</declarator>
377                </declarators>
378              </typedef>
379    
380              <typedef>
381                <type_spec>
382                  <array><type_spec>long</type_spec></array>
383                </type_spec>
384                <declarators>
385                  <declarator>LongArray</declarator>
386                </declarators>
387              </typedef>
388    
389              <typedef>
390                <type_spec>
391                  <array><type_spec>short</type_spec></array>
392                </type_spec>
393                <declarators>
394                  <declarator>ShortArray</declarator>
395                </declarators>
396              </typedef>
397    
398              <typedef>
399                <type_spec>
400                  <array><type_spec>unsigned long</type_spec></array>
401                </type_spec>
402                <declarators>
403                  <declarator>UnsignedLongArray</declarator>
404                </declarators>
405              </typedef>
406    
407              <typedef>
408                <type_spec>
409                  <array><type_spec>unsigned short</type_spec></array>
410                </type_spec>
411                <declarators>
412                  <declarator>UnsignedShortArray</declarator>
413                </declarators>
414              </typedef>
415    
416              <typedef>
417                <type_spec>
418                  <array><type_spec>char</type_spec></array>
419                </type_spec>
420                <declarators>
421                  <declarator>CharArray</declarator>
422                </declarators>
423              </typedef>
424    
425              <typedef>
426                <type_spec>
427                  <array><type_spec>boolean</type_spec></array>
428                </type_spec>
429                <declarators>
430                  <declarator>BooleanArray</declarator>
431                </declarators>
432              </typedef>
433    
434              <typedef>
435                <type_spec>
436                  <array><type_spec>octet</type_spec></array>
437                </type_spec>
438                <declarators>
439                  <declarator>OctetArray</declarator>
440                </declarators>
441              </typedef>
442    
443              <typedef>
444                <type_spec>
445                  <array><type_spec>date</type_spec></array>
446                </type_spec>
447                <declarators>
448                  <declarator>DateArray</declarator>
449                </declarators>
450              </typedef>
451    
452              <typedef>
453                <type_spec>
454                  <array><type_spec>time</type_spec></array>
455                </type_spec>
456                <declarators>
457                  <declarator>TimeArray</declarator>
458                </declarators>
459              </typedef>
460    
461              <typedef>
462                <type_spec>
463                  <array><type_spec>interval</type_spec></array>
464                </type_spec>
465                <declarators>
466                  <declarator>IntervalArray</declarator>
467                </declarators>
468              </typedef>
469    
470              <typedef>
471                <type_spec>
472                  <array><type_spec>timestamp</type_spec></array>
473                </type_spec>
474                <declarators>
475                  <declarator>TimestampArray</declarator>
476                </declarators>
477              </typedef>
478    
479              <typedef>
480                <type_spec>
481                  <sequence><type_spec>float</type_spec></sequence>
482                </type_spec>
483                <declarators>
484                  <declarator>FloatSequence</declarator>
485                </declarators>
486              </typedef>
487    
488              <typedef>
489                <type_spec>
490                  <sequence><type_spec>double</type_spec></sequence>
491                </type_spec>
492                <declarators>
493                  <declarator>DoubleSequence</declarator>
494                </declarators>
495              </typedef>
496    
497              <typedef>
498                <type_spec>
499                  <sequence><type_spec>long long</type_spec></sequence>
500                </type_spec>
501                <declarators>
502                  <declarator>LongLongSequence</declarator>
503                </declarators>
504              </typedef>
505    
506              <typedef>
507                <type_spec>
508                  <sequence><type_spec>long</type_spec></sequence>
509                </type_spec>
510                <declarators>
511                  <declarator>LongSequence</declarator>
512                </declarators>
513              </typedef>
514    
515              <typedef>
516                <type_spec>
517                  <sequence><type_spec>short</type_spec></sequence>
518                </type_spec>
519                <declarators>
520                  <declarator>ShortSequence</declarator>
521                </declarators>
522              </typedef>
523    
524               <typedef>
525                <type_spec>
526                  <sequence><type_spec>unsigned long</type_spec></sequence>
527                </type_spec>
528                <declarators>
529                  <declarator>UnsignedLongSequence</declarator>
530                </declarators>
531              </typedef>
532    
533               <typedef>
534                <type_spec>
535                  <sequence><type_spec>unsigned short</type_spec></sequence>
536                </type_spec>
537                <declarators>
538                  <declarator>UnsignedShortSequence</declarator>
539                </declarators>
540              </typedef>
541    
542               <typedef>
543                <type_spec>
544                  <sequence><type_spec>char</type_spec></sequence>
545                </type_spec>
546                <declarators>
547                  <declarator>CharSequence</declarator>
548                </declarators>
549              </typedef>
550    
551               <typedef>
552                <type_spec>
553                  <sequence><type_spec>boolean</type_spec></sequence>
554                </type_spec>
555                <declarators>
556                  <declarator>BooleanSequence</declarator>
557                </declarators>
558              </typedef>
559    
560               <typedef>
561                <type_spec>
562                  <sequence><type_spec>octet</type_spec></sequence>
563                </type_spec>
564                <declarators>
565                  <declarator>OctetSequence</declarator>
566                </declarators>
567              </typedef>
568    
569               <typedef>
570                <type_spec>
571                  <sequence><type_spec>date</type_spec></sequence>
572                </type_spec>
573                <declarators>
574                  <declarator>DateSequence</declarator>
575                </declarators>
576              </typedef>
577    
578               <typedef>
579                <type_spec>
580                  <sequence><type_spec>time</type_spec></sequence>
581                </type_spec>
582                <declarators>
583                  <declarator>TimeSequence</declarator>
584                </declarators>
585              </typedef>
586    
587               <typedef>
588                <type_spec>
589                  <sequence><type_spec>interval</type_spec></sequence>
590                </type_spec>
591                <declarators>
592                  <declarator>IntervalSequence</declarator>
593                </declarators>
594              </typedef>
595    
596               <typedef>
597                <type_spec>
598                  <sequence><type_spec>timestamp</type_spec></sequence>
599                </type_spec>
600                <declarators>
601                  <declarator>IntervalSequence</declarator>
602                </declarators>
603              </typedef>
604    
605               <typedef>
606                <type_spec>
607                  <type_spec>string</type_spec>
608                </type_spec>
609                <declarators>
610                  <declarator>String</declarator>
611                </declarators>
612              </typedef>
613    
614               <typedef>
615                <type_spec>
616                  <type_spec size="2">string</type_spec>
617                </type_spec>
618                <declarators>
619                  <declarator>StringArray</declarator>
620                </declarators>
621              </typedef>
622    
623               <typedef>
624                <type_spec>
625                  <type_spec><scoped_name>GNUe::Goats::Goat</scoped_name></type_spec>
626                </type_spec>
627                <declarators>
628                  <declarator>Hacker</declarator>
629                </declarators>
630              </typedef>
631    
632              <struct id="Foo">
633                <members>
634                  <member>
635                    <type_spec>short</type_spec>
636                    <declarators>
637                      <declarator>fubar</declarator>
638                    </declarators>
639                  </member>
640                  <member>
641                    <type_spec>long</type_spec>
642                    <declarators>
643                      <declarator>foobar</declarator>
644                    </declarators>
645                  </member>
646                  <member>
647                    <type_spec><array><type_spec>long</type_spec></array></type_spec>
648                    <declarators>
649                      <declarator>fubarz</declarator>
650                    </declarators>
651                  </member>
652                </members>
653              </struct>
654    
655              <union id="MyUnion">
656                <switch>
657                  <type_spec>long</type_spec>
658                  <case>
659                    <long>1</long>
660                    <type_spec>string</type_spec>
661                    <declarator>s</declarator>
662                  </case>
663                  <default>
664                    <type_spec>long</type_spec>
665                    <declarator>x</declarator>
666                  </default>
667                </switch>
668              </union>
669    
670              <enum id="FooType">
671                <enumerator>bar</enumerator>
672                <enumerator>biz</enumerator>
673                <enumerator>bazz</enumerator>
674              </enum>
675    
676              <typedef>
677                <type_spec><struct>Foo</struct></type_spec>
678                <declarators>
679                  <declarator>foo</declarator>
680                </declarators>
681              </typedef>
682    
683             <typedef>
684               <type_spec><union>MyUnion</union></type_spec>
685               <declarators>
686                 <declarator>my_union</declarator>
687               </declarators>
688             </typedef>
689    
690             <typedef>
691               <type_spec><enum>FooType</enum></type_spec>
692               <declarators>
693                 <declarator>foo_type</declarator>
694               </declarators>
695             </typedef>
696    
697             <typedef>
698               <type_spec>
699                 <dictionary>
700                   <key>
701                     <type_spec>float</type_spec>
702                   </key>
703                   <value>
704                     <type_spec>float</type_spec>
705                   </value>
706                 </dictionary>
707               </type_spec>
708               <declarators>
709                 <declarator>Dictionary</declarator>
710               </declarators>
711             </typedef>
712    
713             <typedef>
714               <type_spec><set><type_spec>float</type_spec></set></type_spec>
715               <declarators>
716                 <declarator>Set</declarator>
717               </declarators>
718             </typedef>
719    
720             <typedef>
721               <type_spec><list><type_spec>float</type_spec></list></type_spec>
722               <declarators>
723                 <declarator>Set</declarator>
724               </declarators>
725             </typedef>
726    
727             <typedef>
728               <type_spec><bag><type_spec>float</type_spec></bag></type_spec>
729               <declarators>
730                 <declarator>Bag</declarator>
731               </declarators>
732             </typedef>
733    
734             <!-- Forward declarations -->
735             <interface id="CodeSlave"/>
736             <class id="Goats::Goat"/>
737    
738             <const id="MADGOATS">
739               <type_spec>
740                 <boolean>TRUE</boolean>
741               </type_spec>
742             </const>
743    
744             <!-- Exception declarations -->
745             <exception id="FooError"/>
746    
747             <exception id="BarError">
748               <members>
749                 <member>
750                   <type_spec>string</type_spec>
751                   <declarators>
752                     <declarator>biz</declarator>
753                   </declarators>
754                 </member>
755                 <member>
756                   <type_spec>char</type_spec>
757                   <declarators>
758                     <declarator>bar</declarator>
759                   </declarators>
760                 </member>
761                 <member>
762                   <type_spec>float</type_spec>
763                   <declarators>
764                     <declarator>baz</declarator>
765                   </declarators>
766                 </member>
767               </members>
768             </exception>
769    
770             <interface id="Sadist">
771    
772               <operation id="torture"/>
773    
774             </interface>
775    
776             <interface id="Masochist">
777               <operation id="suffer"/>
778             </interface>
779    
780             <interface id="DaMasta">
781               <inherits>
782                 <interface>Sadist</interface>
783               </inherits>
784    
785               <enum id="BeatingType">
786                 <enumeration>mild</enumeration>
787                 <enumeration>profuse</enumeration>
788               </enum>
789    
790               <typedef>
791                 <type_spec><enum>BeatingType</enum></type_spec>
792                 <declarators>
793                   <declarator>beating_t</declarator>
794                 </declarators>
795               </typedef>
796    
797               <const id="FAVCOLOR">
798                 <type_spec><string>red</string></type_spec>
799               </const>
800    
801               <exception id="CodeSlaveAway"/>
802    
803               <exception id="NoTicketsAssigned"/>
804    
805               <attribute readonly="1">
806                 <type_spec>string</type_spec>
807                 <name>favoriteColor</name>
808               </attribute>
809                
810               <attribute>
811                 <type_spec>unsigned short</type_spec>
812                 <name>bugReports</name>
813               </attribute>
814    
815               <attribute>
816                 <type_spec>beating_t</type_spec>
817                 <name>beating</name>
818               </attribute>
819    
820               <relationship id="beats">
821                 <target>
822                   <type_spec><set>CodeSlave</set></type_spec>
823                 </target>
824                 <inverse>
825                   <scoped_name>CodeSlave::isBeaten</scoped_name>
826                 </inverse>
827               </relationship>
828    
829               <relationship id="assignsTicket">
830                 <target>
831                   <type_spec><scoped_name>Hacker</scoped_name></type_spec>
832                 </target>
833                 <inverse>
834                   <scoped_name>Hacker::isAssignedTicketBy</scoped_name>
835                 </inverse>
836               </relationship>
837    
838               <operation oneway="1" id="speakInIRCChannel"/>
839    
840               <operation id="isWatching">
841                 <returns>
842                   <type_spec>boolean</type_spec>
843                 </returns>
844                 <parameters>
845                   <parameter mode="in">
846                     <type_spec><scoped_name>CodeSlave</scoped_name></type_spec>
847                     <declarator>cslave</declarator>
848                   </parameter>
849                 </parameters>
850               </operation>
851    
852               <operation id="beatCodeSlave">
853                 <parameters>
854                   <parameter mode="in">
855                     <type_spec><scoped_name>CodeSlave</scoped_name></type_spec>
856                     <declarator>cslave</declarator>
857                   </parameter>
858                   <parameter mode="inout">
859                     <type_spec>beating_t</type_spec>
860                     <declarator>severity</declarator>
861                   </parameter>
862                 </parameters>
863                 <raises>
864                   <exception>CodeSlaveAway</exception>
865                 </raises>
866               </operation>
867    
868               <operation id="getTickets">
869                 <returns>
870                   <type_spec>boolean</type_spec>
871                 </returns>
872                 <parameters>
873                   <parameter mode="in">
874                     <type_spec><scoped_name>Hacker</scoped_name></type_spec>
875                     <declarator>goat</declarator>
876                   </parameter>
877                   <parameter mode="out">
878                     <type_spec>unsigned short</type_spec>
879                     <declarator>tickets</declarator>
880                   </parameter>
881                 </parameters>
882                 <raises>
883                   <exception>NoTickestAssigned</exception>
884                 </raises>
885               </operation>
886    
887             </interface>
888    
889             <interface id="CodeSlave">
890               <inherits>
891                 <interface>Masochist</interface>
892               </inherits>
893    
894               <enum id="HackType">
895                 <enumeration>common</enumeration>
896                 <enumeration>forms</enumeration>
897                 <enumeration>appserver</enumeration>
898                 <enumeration>designer</enumeration>
899                 <enumeration>reports</enumeration>
900                 <enumeration>navigator</enumeration>
901                 <enumeration>phpforms</enumeration>
902               </enum>
903    
904               <typedef>
905                 <type_spec><enum>HackType</enum></type_spec>
906                 <declarators>
907                   <declarator>hack_t</declarator>
908                 </declarators>
909               </typedef>
910    
911               <exception id="WhoSaidYouCouldStopCoding">
912                 <members>
913                   <member>
914                     <type_spec>string</type_spec>
915                     <declarators>
916                       <declarator>cslave_name</declarator>
917                     </declarators>
918                   </member>
919                   <member>
920                     <type_spec>boolean</type_spec>
921                     <declarators>
922                       <declarator>beating</declarator>
923                     </declarators>
924                   </member>
925                 </members>
926               </exception>
927    
928               <exception id="CVSPermissionDenied">
929                 <members>
930                   <member>
931                     <type_spec>string</type_spec>
932                     <declarators>
933                       <declarator>why</declarator>
934                     </declarators>
935                   </member>
936                 </members>
937               </exception>
938    
939               <relationship id="isBeaten">
940                 <target>
941                   <type_spec><scoped_name>GNUe::DaMasta</scoped_name></type_spec>
942                 </target>
943                 <inverse>
944                   <scoped_name>GNUe::DaMasta::beats</scoped_name>
945                 </inverse>
946               </relationship>
947    
948               <operation id="stopCoding">
949                 <raises>
950                   <exception>WhoSaidYouCouldStopCoding</exception>
951                 </raises>
952               </operation>
953    
954               <operation id="commitCode">
955                 <returns>
956                   <type_spec>boolean</type_spec>
957                 </returns>
958                 <parameters>
959                   <parameter mode="in">
960                     <type_spec>string</type_spec>
961                     <declarator>code</declarator>
962                   </parameter>
963                   <parameter mode="in">
964                     <type_spec>hack_t</type_spec>
965                     <declarator>hackingOn</declarator>
966                   </parameter>
967                 </parameters>
968                 <raises>
969                   <exception>CVSPermissionDenied</exception>
970                 </raises>
971               </operation>
972             </interface>
973    
974               <!--
975               This is the fun module :). It is also used to test nesting of
976               modules and as an example to help determine how xml for nesting modules
977               should be done.
978               -->
979               <module id="Goats">
980                 <odl_specification>
981                   <odl_definition>
982    
983                     <class>
984                       <id>Goat</id>
985                       <inherits>
986                         <interface>GNUe::CodeSlave</interface>
987                       </inherits>
988    
989                       <attribute>
990                         <type_spec>boolean</type_spec>
991                         <name>madGoatRaped</name>
992                       </attribute>
993    
994                       <attribute>
995                         <type_spec>string</type_spec>
996                         <name>name</name>
997                       </attribute>
998    
999                       <attribute>
1000                         <type_spec>boolean</type_spec>
1001                         <name>FSFCopyrightAssignment</name>
1002                       </attribute>
1003    
1004                       <relationship id="isAssignedTicketBy">
1005                         <target>
1006                           <type_spec><scoped_name>GNUe::DaMasta</scoped_name></type_spec>
1007                         </target>
1008                         <inverse>
1009                           <scoped_name>GNUe::DaMasta::assignsTicket</scoped_name>
1010                         </inverse>
1011                       </relationship>
1012                     </class>
1013    
1014                     <class id="Derek">
1015                       <extends>
1016                         <class>Goat</class>
1017                       </extends>
1018                       <inherits>
1019                         <interface>GNUe::DaMasta</interface>
1020                       </inherits>
1021                       <extent>goats</extent>
1022    
1023                       <exception id="BurnRoofOfMouth"/>
1024    
1025                       <exception id="NeedsReheating"/>
1026    
1027                       <exception id="OutofTopping">
1028                         <members>
1029                           <member>
1030                             <type_spec>string</type_spec>
1031                             <declarators>
1032                               <declarator>topping</declarator>
1033                             </declarators>
1034                           </member>
1035                         </members>
1036                       </exception>
1037    
1038                       <struct id="PizzaType">
1039                         <members>
1040                           <member>
1041                             <type_spec>string</type_spec>
1042                             <declarators>
1043                               <declarator>kind</declarator>
1044                             </declarators>
1045                           </member>
1046                           <member>
1047                             <type_spec><bag><type_spec>string</type_spec></bag></type_spec>
1048                             <declarators>
1049                               <declarator>toppings</declarator>
1050                             </declarators>
1051                             <!-- allows duplicate toppings ("extra" toppings) -->
1052                           </member>
1053                         </members>
1054                       </struct>
1055    
1056                       <typedef>
1057                         <type_spec><struct>PizzaType</struct></type_spec>
1058                         <declarators>
1059                           <declarator>pizza_t</declarator>
1060                         </declarators>
1061                       </typedef>
1062    
1063                       <attribute>
1064                         <type_spec>boolean</type_spec>
1065                         <name>orderPizza</name>
1066                       </attribute>
1067    
1068                       <attribute>
1069                         <type_spec>float</type_spec>
1070                         <name>temperature</name>
1071                       </attribute>
1072    
1073                       <attribute>
1074                         <type_spec><set><type_spec>pizza_t</type_spec></set></type_spec>
1075                         <name>pizzas</name>
1076                       </attribute>
1077    
1078                       <operation id="orderPizza">
1079                         <returns>
1080                           <type_spec>boolean</type_spec>
1081                         </returns>
1082                         <parameters>
1083                           <parameter mode="in">
1084                             <type_spec><set>pizza_t</set></type_spec>
1085                             <declarator>pizzaPies</declarator>
1086                           </parameter>
1087                         </parameters>
1088                         <raises>
1089                           <exception>OutofTopping</exception>
1090                         </raises>
1091                       </operation>
1092    
1093                       <operation id="eatPizza">
1094                         <parameters>
1095                           <parameter mode="in">
1096                             <type_spec>pizza_t</type_spec>
1097                             <declarator>pizza</declarator>
1098                           </parameter>
1099                         </parameters>
1100                         <raises>
1101                           <exception>BurnRoofofMouth</exception>
1102                           <exception>NeedsReheating</exception>
1103                         </raises>
1104                       </operation>
1105                     </class>
1106    
1107                     <class id="Chillywilly">
1108                       <extends>
1109                         <class>Goat</class>
1110                       </extends>
1111                       <extent>goats</extent>
1112    
1113                       <exception id="OutofStock">
1114                         <members>
1115                           <member>
1116                             <type_spec>string</type_spec>
1117                             <declarators>
1118                               <declarator>why</declarator>
1119                             </declarators>
1120                           </member>
1121                         </members>
1122                       </exception>
1123    
1124                       <exception id="GoatDucked"/>
1125    
1126                       <exception id="ExceededTroutLimit">
1127                         <members>
1128                           <member>
1129                             <type_spec>unsigned short</type_spec>
1130                             <declarators>
1131                               <declarator>limit</declarator>
1132                             </declarators>
1133                           </member>
1134                         </members>
1135                       </exception>
1136    
1137                       <enum id="TroutType">
1138                         <enumeration>brown</enumeration>
1139                         <enumeration>rainbow</enumeration>
1140                         <enumeration>lake</enumeration>
1141                       </enum>
1142    
1143                       <typedef>
1144                         <type_spec><enum>TroutType</enum></type_spec>
1145                         <declarators>
1146                           <declarator>trout_t</declarator>
1147                         </declarators>
1148                       </typedef>
1149    
1150                       <const id="preferredTrout">
1151                         <type_spec>
1152                           <trout_t>rainbow</trout_t>
1153                         </type_spec>
1154                       </const>
1155    
1156                       <attribute>
1157                         <type_spec>boolean</type_spec>
1158                         <name>troutslap</name>
1159                       </attribute>
1160    
1161                       <attribute>
1162                         <type_spec><bag><type_spec>trout_t</type_spec></bag></type_spec>
1163                         <name>trout</name>
1164                       </attribute>
1165    
1166                       <relationship id="favoriteSlapee">
1167                         <target>
1168                           <type_spec><scoped_name>Jcater</scoped_name></type_spec>
1169                         </target>
1170                         <inverse>
1171                           <scoped_name>Jcater::isTroutSlappedBy</scoped_name>
1172                         </inverse>
1173                       </relationship>
1174    
1175                       <operation id="addTrout">
1176                         <returns>
1177                           <type_spec>boolean</type_spec>
1178                         </returns>
1179                         <parameters>
1180                           <parameter mode="in">
1181                             <type_spec>trout_t</type_spec>
1182                             <declarator>trout</declarator>
1183                           </parameter>
1184                           <parameter mode="out">
1185                             <type_spec>unsigned short</type_spec>
1186                             <declarator>inStock</declarator>
1187                           </parameter>
1188                         </parameters>
1189                         <raises>
1190                           <exception>ExceededTroutLimit</exception>
1191                         </raises>
1192                       </operation>
1193    
1194                       <operation id="troutSlap">
1195                         <parameters>
1196                           <parameter mode="in">
1197                             <type_spec><scoped_name>Goat</scoped_name></type_spec>
1198                             <declarator>slapee</declarator>
1199                           </parameter>
1200                           <parameter mode="in">
1201                             <type_spec>trout_t</type_spec>
1202                             <declarator>trout</declarator>
1203                           </parameter>
1204                         </parameters>
1205                         <raises>
1206                           <exception>OutOfStock</exception>
1207                           <exception>GoatDucked</exception>
1208                         </raises>
1209                       </operation>
1210                     </class>
1211    
1212                     <class id="Jcater">
1213                       <extends>
1214                         <class>Goat</class>
1215                       </extends>
1216                       <extent>goats</extent>
1217    
1218                       <exception id="InvalidDonutType">
1219                         <members>
1220                           <member>
1221                             <type_spec>string</type_spec>
1222                             <declarators>
1223                               <declarator>what</declarator>
1224                             </declarators>
1225                           </member>
1226                         </members>
1227                       </exception>
1228    
1229                       <exception id="NotEnoughMoney"/>
1230    
1231                       <enum id="DonutType">
1232                         <enumeration>glazed</enumeration>
1233                         <enumeration>krispy_kreme</enumeration>
1234                         <enumeration>jelly</enumeration>
1235                         <enumeration>powedered</enumeration>
1236                       </enum>
1237    
1238                       <struct id="Currency">
1239                         <members>
1240                           <member>
1241                             <type_spec>string</type_spec>
1242                             <declarators>
1243                               <declarator>type</declarator>
1244                             </declarators>
1245                           </member>
1246                           <member>
1247                             <type_spec>float</type_spec>
1248                             <declarators>
1249                               <declarator>amount</declarator>
1250                             </declarators>
1251                           </member>
1252                         </members>
1253                       </struct>
1254    
1255                       <typedef>
1256                         <type_spec><struct>DonutType</struct></type_spec>
1257                         <declarators>
1258                           <declarator>donut_t</declarator>
1259                         </declarators>
1260                       </typedef>
1261    
1262                       <const id="preferredDonut">
1263                         <type_spec><donut_t>krispy_kreme</donut_t></type_spec>
1264                       </const>
1265    
1266                       <attribute>
1267                         <type_spec><bag><type_spec>donut_t</type_spec></bag></type_spec>
1268                         <name>donuts</name>
1269                       </attribute>
1270    
1271                       <operation id="consumeDonuts">
1272                         <parameters>
1273                           <parameter mode="in">
1274                             <type_spec>donut_t</type_spec>
1275                             <declarator>donut</declarator>
1276                           </parameter>
1277                         </parameters>
1278                         <raises>
1279                           <exception>InvalidDonutType</exception>
1280                         </raises>
1281                       </operation>
1282    
1283                       <operation id="purchaseDonuts">
1284                         <returns>
1285                           <type_spec>boolean</type_spec>
1286                         </returns>
1287                         <parameters>
1288                           <parameter mode="in">
1289                             <type_spec><struct>Currency</struct></type_spec>
1290                             <declarator>money</declarator>
1291                           </parameter>
1292                           <parameter mode="out">
1293                             <type_spec><bag><type_spec>donut_t</type_spec></bag></type_spec>
1294                             <declarator>donuts</declarator>
1295                           </parameter>
1296                         </parameters>
1297                         <raises>
1298                           <exception>NotEnoughMoney</exception>
1299                         </raises>
1300                       </operation>
1301    
1302                     </class>
1303    
1304                     <class id="Jamest">
1305                       <extends>
1306                         <class>Goat</class>
1307                       </extends>
1308                       <extent>goats</extent>
1309    
1310                       <exception id="CrackLevelsTooLow">
1311                         <members>
1312                           <member>
1313                             <type_spec>unsigned short</type_spec>
1314                             <declarators>
1315                               <declarator>level</declarator>
1316                             </declarators>
1317                           </member>
1318                         </members>
1319                       </exception>
1320    
1321                       <struct id="AtmosphericCrack">
1322                         <members>
1323                           <member>
1324                             <type_spec>string</type_spec>
1325                             <declarators>
1326                               <declarator>kind</declarator>
1327                             </declarators>
1328                           </member>
1329                           <member>
1330                             <type_spec>unsigned long</type_spec>
1331                             <declarators>
1332                               <declarator>weight</declarator>
1333                             </declarators>
1334                           </member>
1335                           <member>
1336                             <type_spec>float</type_spec>
1337                             <declarators>
1338                               <declarator>percentage</declarator>
1339                             </declarators>
1340                           </member>
1341                         </members>
1342                       </struct>
1343    
1344                       <typedef>
1345                         <type_spec><struct>AtmosphericCrack</struct></type_spec>
1346                         <declarators>
1347                           <declarator>atmoscrack_t</declarator>
1348                         </declarators>
1349                       </typedef>
1350    
1351                       <attribute>
1352                         <type_spec><bag><type_spec>atmoscrack_t</type_spec></bag></type_spec>
1353                         <name>crackReserves</name>
1354                       </attribute>
1355    
1356                       <operation id="inhaleAtmosphericCrack">
1357                         <parameters>
1358                           <parameter mode="in">
1359                             <type_spec><struct>AtmosphericCrack</struct></type_spec>
1360                             <declarator>crack</declarator>
1361                           </parameter>
1362                         </parameters>
1363                         <raises>
1364                           <exception>CrackLevelsTooLow</exception>
1365                         </raises>
1366                       </operation>
1367                     </class>
1368    
1369                     <class id="Reinhard">
1370                       <extends>
1371                         <class>Goat</class>
1372                       </extends>
1373                       <extent>goats</extent>
1374    
1375                       <exception id="FileDoesNotExist">
1376                         <members>
1377                           <member>
1378                             <type_spec>string</type_spec>
1379                             <declarators>
1380                               <declarator>filename</declarator>
1381                             </declarators>
1382                           </member>
1383                         </members>
1384                       </exception>
1385    
1386                       <exception id="FileIsEmpty">
1387                         <members>
1388                           <member>
1389                             <type_spec>string</type_spec>
1390                             <declarators>
1391                               <declarator>filename</declarator>
1392                             </declarators>
1393                           </member>
1394                         </members>
1395                       </exception>
1396    
1397                       <attribute>
1398                         <type_spec><list><type_spec>string</type_spec></list></type_spec>
1399                         <name>quitMessages</name>
1400                       </attribute>
1401    
1402                       <attribute>
1403                         <type_spec>string</type_spec>
1404                         <name>filename</name>
1405                       </attribute>
1406    
1407                       <operation id="loadQuitMessage">
1408                         <returns>
1409                           <type_spec>boolean</type_spec>
1410                         </returns>
1411                         <parameters>
1412                           <parameter mode="in">
1413                             <type_spec>string</type_spec>
1414                             <declarator>filename</declarator>
1415                           </parameter>
1416                         </parameters>
1417                         <raises>
1418                           <exception>FileDoesNotExist</exception>
1419                           <exception>FileIsEmpty</exception>
1420                         </raises>
1421                       </operation>
1422    
1423                       <operation id="loadQuitMessage">
1424                         <returns>
1425                           <type_spec>string</type_spec>
1426                         </returns>
1427                       </operation>
1428                     </class>
1429    
1430                  </odl_definition>
1431                </odl_specification>
1432              </module>
1433    
1434            </odl_definition>
1435          </odl_specification>
1436        </module>
1437    
1438      </odl_definition>
1439    </odl_specification>

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26