1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <dia:diagram xmlns:
dia=
"http://www.lysator.liu.se/~alla/dia/">
4 <dia:attribute name=
"background">
5 <dia:color val=
"#ffffff"/>
7 <dia:attribute name=
"pagebreak">
8 <dia:color val=
"#000099"/>
10 <dia:attribute name=
"paper">
11 <dia:composite type=
"paper">
12 <dia:attribute name=
"name">
13 <dia:string>#A4#
</dia:string>
15 <dia:attribute name=
"tmargin">
16 <dia:real val=
"2.8222000598907471"/>
18 <dia:attribute name=
"bmargin">
19 <dia:real val=
"2.8222000598907471"/>
21 <dia:attribute name=
"lmargin">
22 <dia:real val=
"2.8222000598907471"/>
24 <dia:attribute name=
"rmargin">
25 <dia:real val=
"2.8222000598907471"/>
27 <dia:attribute name=
"is_portrait">
28 <dia:boolean val=
"true"/>
30 <dia:attribute name=
"scaling">
33 <dia:attribute name=
"fitto">
34 <dia:boolean val=
"false"/>
38 <dia:attribute name=
"grid">
39 <dia:composite type=
"grid">
40 <dia:attribute name=
"width_x">
43 <dia:attribute name=
"width_y">
46 <dia:attribute name=
"visible_x">
49 <dia:attribute name=
"visible_y">
52 <dia:composite type=
"color"/>
55 <dia:attribute name=
"color">
56 <dia:color val=
"#d8e5e5"/>
58 <dia:attribute name=
"guides">
59 <dia:composite type=
"guides">
60 <dia:attribute name=
"hguides"/>
61 <dia:attribute name=
"vguides"/>
65 <dia:layer name=
"Background" visible=
"true">
66 <dia:object type=
"UML - Class" version=
"0" id=
"O0">
67 <dia:attribute name=
"obj_pos">
68 <dia:point val=
"1.05,1.15"/>
70 <dia:attribute name=
"obj_bb">
71 <dia:rectangle val=
"1,1.1;32.75,16.6"/>
73 <dia:attribute name=
"elem_corner">
74 <dia:point val=
"1.05,1.15"/>
76 <dia:attribute name=
"elem_width">
77 <dia:real val=
"31.649999999999999"/>
79 <dia:attribute name=
"elem_height">
80 <dia:real val=
"15.4"/>
82 <dia:attribute name=
"name">
83 <dia:string>#debug#
</dia:string>
85 <dia:attribute name=
"stereotype">
86 <dia:string>##
</dia:string>
88 <dia:attribute name=
"comment">
89 <dia:string>##
</dia:string>
91 <dia:attribute name=
"abstract">
92 <dia:boolean val=
"false"/>
94 <dia:attribute name=
"suppress_attributes">
95 <dia:boolean val=
"false"/>
97 <dia:attribute name=
"suppress_operations">
98 <dia:boolean val=
"false"/>
100 <dia:attribute name=
"visible_attributes">
101 <dia:boolean val=
"true"/>
103 <dia:attribute name=
"visible_operations">
104 <dia:boolean val=
"true"/>
106 <dia:attribute name=
"visible_comments">
107 <dia:boolean val=
"false"/>
109 <dia:attribute name=
"wrap_operations">
110 <dia:boolean val=
"false"/>
112 <dia:attribute name=
"wrap_after_char">
115 <dia:attribute name=
"comment_line_length">
118 <dia:attribute name=
"comment_tagging">
119 <dia:boolean val=
"false"/>
121 <dia:attribute name=
"line_color">
122 <dia:color val=
"#000000"/>
124 <dia:attribute name=
"fill_color">
125 <dia:color val=
"#ffffff"/>
127 <dia:attribute name=
"text_color">
128 <dia:color val=
"#000000"/>
130 <dia:attribute name=
"normal_font">
131 <dia:font family=
"monospace" style=
"0" name=
"Courier"/>
133 <dia:attribute name=
"abstract_font">
134 <dia:font family=
"monospace" style=
"88" name=
"Courier-BoldOblique"/>
136 <dia:attribute name=
"polymorphic_font">
137 <dia:font family=
"monospace" style=
"8" name=
"Courier-Oblique"/>
139 <dia:attribute name=
"classname_font">
140 <dia:font family=
"sans" style=
"80" name=
"Helvetica-Bold"/>
142 <dia:attribute name=
"abstract_classname_font">
143 <dia:font family=
"sans" style=
"88" name=
"Helvetica-BoldOblique"/>
145 <dia:attribute name=
"comment_font">
146 <dia:font family=
"sans" style=
"8" name=
"Helvetica-Oblique"/>
148 <dia:attribute name=
"normal_font_height">
149 <dia:real val=
"0.80000000000000004"/>
151 <dia:attribute name=
"polymorphic_font_height">
152 <dia:real val=
"0.80000000000000004"/>
154 <dia:attribute name=
"abstract_font_height">
155 <dia:real val=
"0.80000000000000004"/>
157 <dia:attribute name=
"classname_font_height">
160 <dia:attribute name=
"abstract_classname_font_height">
163 <dia:attribute name=
"comment_font_height">
166 <dia:attribute name=
"attributes">
167 <dia:composite type=
"umlattribute">
168 <dia:attribute name=
"name">
169 <dia:string>#level#
</dia:string>
171 <dia:attribute name=
"type">
172 <dia:string>#scalar integer#
</dia:string>
174 <dia:attribute name=
"value">
175 <dia:string>#
1#
</dia:string>
177 <dia:attribute name=
"comment">
178 <dia:string>##
</dia:string>
180 <dia:attribute name=
"visibility">
183 <dia:attribute name=
"abstract">
184 <dia:boolean val=
"false"/>
186 <dia:attribute name=
"class_scope">
187 <dia:boolean val=
"false"/>
190 <dia:composite type=
"umlattribute">
191 <dia:attribute name=
"name">
192 <dia:string>#warn_with_trace#
</dia:string>
194 <dia:attribute name=
"type">
195 <dia:string>#scalar integer#
</dia:string>
197 <dia:attribute name=
"value">
198 <dia:string>#
0#
</dia:string>
200 <dia:attribute name=
"comment">
201 <dia:string>##
</dia:string>
203 <dia:attribute name=
"visibility">
206 <dia:attribute name=
"abstract">
207 <dia:boolean val=
"false"/>
209 <dia:attribute name=
"class_scope">
210 <dia:boolean val=
"false"/>
213 <dia:composite type=
"umlattribute">
214 <dia:attribute name=
"name">
215 <dia:string>#level_names#
</dia:string>
217 <dia:attribute name=
"type">
218 <dia:string>#array of strings#
</dia:string>
220 <dia:attribute name=
"value">
221 <dia:string>#['Fatal Error', 'Warning', 'Information','Call History']#
</dia:string>
223 <dia:attribute name=
"comment">
224 <dia:string>##
</dia:string>
226 <dia:attribute name=
"visibility">
229 <dia:attribute name=
"abstract">
230 <dia:boolean val=
"false"/>
232 <dia:attribute name=
"class_scope">
233 <dia:boolean val=
"false"/>
236 <dia:composite type=
"umlattribute">
237 <dia:attribute name=
"name">
238 <dia:string>#specific_classes#
</dia:string>
240 <dia:attribute name=
"type">
241 <dia:string>#hash of strings to booleans#
</dia:string>
243 <dia:attribute name=
"value">
244 <dia:string>#{}#
</dia:string>
246 <dia:attribute name=
"comment">
247 <dia:string>##
</dia:string>
249 <dia:attribute name=
"visibility">
252 <dia:attribute name=
"abstract">
253 <dia:boolean val=
"false"/>
255 <dia:attribute name=
"class_scope">
256 <dia:boolean val=
"false"/>
259 <dia:composite type=
"umlattribute">
260 <dia:attribute name=
"name">
261 <dia:string>#specific_methods#
</dia:string>
263 <dia:attribute name=
"type">
264 <dia:string>#hash of strings to booleans#
</dia:string>
266 <dia:attribute name=
"value">
267 <dia:string>#{}#
</dia:string>
269 <dia:attribute name=
"comment">
270 <dia:string>##
</dia:string>
272 <dia:attribute name=
"visibility">
275 <dia:attribute name=
"abstract">
276 <dia:boolean val=
"false"/>
278 <dia:attribute name=
"class_scope">
279 <dia:boolean val=
"false"/>
282 <dia:composite type=
"umlattribute">
283 <dia:attribute name=
"name">
284 <dia:string>#fatal#
</dia:string>
286 <dia:attribute name=
"type">
287 <dia:string>#scalar integer#
</dia:string>
289 <dia:attribute name=
"value">
290 <dia:string>#
0#
</dia:string>
292 <dia:attribute name=
"comment">
293 <dia:string>##
</dia:string>
295 <dia:attribute name=
"visibility">
298 <dia:attribute name=
"abstract">
299 <dia:boolean val=
"false"/>
301 <dia:attribute name=
"class_scope">
302 <dia:boolean val=
"false"/>
305 <dia:composite type=
"umlattribute">
306 <dia:attribute name=
"name">
307 <dia:string>#warning#
</dia:string>
309 <dia:attribute name=
"type">
310 <dia:string>#scalar integer#
</dia:string>
312 <dia:attribute name=
"value">
313 <dia:string>#
1#
</dia:string>
315 <dia:attribute name=
"comment">
316 <dia:string>##
</dia:string>
318 <dia:attribute name=
"visibility">
321 <dia:attribute name=
"abstract">
322 <dia:boolean val=
"false"/>
324 <dia:attribute name=
"class_scope">
325 <dia:boolean val=
"false"/>
328 <dia:composite type=
"umlattribute">
329 <dia:attribute name=
"name">
330 <dia:string>#information#
</dia:string>
332 <dia:attribute name=
"type">
333 <dia:string>#scalar integer#
</dia:string>
335 <dia:attribute name=
"value">
336 <dia:string>#
2#
</dia:string>
338 <dia:attribute name=
"comment">
339 <dia:string>##
</dia:string>
341 <dia:attribute name=
"visibility">
344 <dia:attribute name=
"abstract">
345 <dia:boolean val=
"false"/>
347 <dia:attribute name=
"class_scope">
348 <dia:boolean val=
"false"/>
351 <dia:composite type=
"umlattribute">
352 <dia:attribute name=
"name">
353 <dia:string>#call_trace#
</dia:string>
355 <dia:attribute name=
"type">
356 <dia:string>#scalar integer#
</dia:string>
358 <dia:attribute name=
"value">
359 <dia:string>#
3#
</dia:string>
361 <dia:attribute name=
"comment">
362 <dia:string>##
</dia:string>
364 <dia:attribute name=
"visibility">
367 <dia:attribute name=
"abstract">
368 <dia:boolean val=
"false"/>
370 <dia:attribute name=
"class_scope">
371 <dia:boolean val=
"false"/>
374 <dia:composite type=
"umlattribute">
375 <dia:attribute name=
"name">
376 <dia:string>#package#
</dia:string>
378 <dia:attribute name=
"type">
379 <dia:string>#scalar string#
</dia:string>
381 <dia:attribute name=
"value">
382 <dia:string>##
</dia:string>
384 <dia:attribute name=
"comment">
385 <dia:string>##
</dia:string>
387 <dia:attribute name=
"visibility">
390 <dia:attribute name=
"abstract">
391 <dia:boolean val=
"false"/>
393 <dia:attribute name=
"class_scope">
394 <dia:boolean val=
"false"/>
397 <dia:composite type=
"umlattribute">
398 <dia:attribute name=
"name">
399 <dia:string>#subroutine#
</dia:string>
401 <dia:attribute name=
"type">
402 <dia:string>#scalar string#
</dia:string>
404 <dia:attribute name=
"value">
405 <dia:string>##
</dia:string>
407 <dia:attribute name=
"comment">
408 <dia:string>##
</dia:string>
410 <dia:attribute name=
"visibility">
413 <dia:attribute name=
"abstract">
414 <dia:boolean val=
"false"/>
416 <dia:attribute name=
"class_scope">
417 <dia:boolean val=
"false"/>
421 <dia:attribute name=
"operations">
422 <dia:composite type=
"umloperation">
423 <dia:attribute name=
"name">
424 <dia:string>#warn#
</dia:string>
426 <dia:attribute name=
"stereotype">
427 <dia:string>##
</dia:string>
429 <dia:attribute name=
"type">
430 <dia:string>##
</dia:string>
432 <dia:attribute name=
"visibility">
435 <dia:attribute name=
"comment">
436 <dia:string>##
</dia:string>
438 <dia:attribute name=
"abstract">
439 <dia:boolean val=
"false"/>
441 <dia:attribute name=
"inheritance_type">
444 <dia:attribute name=
"query">
445 <dia:boolean val=
"false"/>
447 <dia:attribute name=
"class_scope">
448 <dia:boolean val=
"false"/>
450 <dia:attribute name=
"parameters">
451 <dia:composite type=
"umlparameter">
452 <dia:attribute name=
"name">
453 <dia:string>#message#
</dia:string>
455 <dia:attribute name=
"type">
456 <dia:string>#scalar string#
</dia:string>
458 <dia:attribute name=
"value">
459 <dia:string>#'Default warning message'#
</dia:string>
461 <dia:attribute name=
"comment">
462 <dia:string>##
</dia:string>
464 <dia:attribute name=
"kind">
468 <dia:composite type=
"umlparameter">
469 <dia:attribute name=
"name">
470 <dia:string>#level#
</dia:string>
472 <dia:attribute name=
"type">
473 <dia:string>#scalar integer#
</dia:string>
475 <dia:attribute name=
"value">
476 <dia:string>#
1#
</dia:string>
478 <dia:attribute name=
"comment">
479 <dia:string>##
</dia:string>
481 <dia:attribute name=
"kind">
487 <dia:composite type=
"umloperation">
488 <dia:attribute name=
"name">
489 <dia:string>#die#
</dia:string>
491 <dia:attribute name=
"stereotype">
492 <dia:string>##
</dia:string>
494 <dia:attribute name=
"type">
495 <dia:string>##
</dia:string>
497 <dia:attribute name=
"visibility">
500 <dia:attribute name=
"comment">
501 <dia:string>##
</dia:string>
503 <dia:attribute name=
"abstract">
504 <dia:boolean val=
"false"/>
506 <dia:attribute name=
"inheritance_type">
509 <dia:attribute name=
"query">
510 <dia:boolean val=
"false"/>
512 <dia:attribute name=
"class_scope">
513 <dia:boolean val=
"false"/>
515 <dia:attribute name=
"parameters">
516 <dia:composite type=
"umlparameter">
517 <dia:attribute name=
"name">
518 <dia:string>#message#
</dia:string>
520 <dia:attribute name=
"type">
521 <dia:string>#scalar string#
</dia:string>
523 <dia:attribute name=
"value">
524 <dia:string>#'Default death message'#
</dia:string>
526 <dia:attribute name=
"comment">
527 <dia:string>##
</dia:string>
529 <dia:attribute name=
"kind">
535 <dia:composite type=
"umloperation">
536 <dia:attribute name=
"name">
537 <dia:string>#debug_method#
</dia:string>
539 <dia:attribute name=
"stereotype">
540 <dia:string>##
</dia:string>
542 <dia:attribute name=
"type">
543 <dia:string>##
</dia:string>
545 <dia:attribute name=
"visibility">
548 <dia:attribute name=
"comment">
549 <dia:string>##
</dia:string>
551 <dia:attribute name=
"abstract">
552 <dia:boolean val=
"false"/>
554 <dia:attribute name=
"inheritance_type">
557 <dia:attribute name=
"query">
558 <dia:boolean val=
"false"/>
560 <dia:attribute name=
"class_scope">
561 <dia:boolean val=
"false"/>
563 <dia:attribute name=
"parameters">
564 <dia:composite type=
"umlparameter">
565 <dia:attribute name=
"name">
566 <dia:string>#method_name#
</dia:string>
568 <dia:attribute name=
"type">
569 <dia:string>#scalar string#
</dia:string>
571 <dia:attribute name=
"value">
572 <dia:string>##
</dia:string>
574 <dia:attribute name=
"comment">
575 <dia:string>##
</dia:string>
577 <dia:attribute name=
"kind">
581 <dia:composite type=
"umlparameter">
582 <dia:attribute name=
"name">
583 <dia:string>#debug#
</dia:string>
585 <dia:attribute name=
"type">
586 <dia:string>#scalar boolean#
</dia:string>
588 <dia:attribute name=
"value">
589 <dia:string>#
1#
</dia:string>
591 <dia:attribute name=
"comment">
592 <dia:string>##
</dia:string>
594 <dia:attribute name=
"kind">
600 <dia:composite type=
"umloperation">
601 <dia:attribute name=
"name">
602 <dia:string>#debug_class#
</dia:string>
604 <dia:attribute name=
"stereotype">
605 <dia:string>##
</dia:string>
607 <dia:attribute name=
"type">
608 <dia:string>##
</dia:string>
610 <dia:attribute name=
"visibility">
613 <dia:attribute name=
"comment">
614 <dia:string>##
</dia:string>
616 <dia:attribute name=
"abstract">
617 <dia:boolean val=
"false"/>
619 <dia:attribute name=
"inheritance_type">
622 <dia:attribute name=
"query">
623 <dia:boolean val=
"false"/>
625 <dia:attribute name=
"class_scope">
626 <dia:boolean val=
"false"/>
628 <dia:attribute name=
"parameters">
629 <dia:composite type=
"umlparameter">
630 <dia:attribute name=
"name">
631 <dia:string>#class_name#
</dia:string>
633 <dia:attribute name=
"type">
634 <dia:string>#scalar string#
</dia:string>
636 <dia:attribute name=
"value">
637 <dia:string>##
</dia:string>
639 <dia:attribute name=
"comment">
640 <dia:string>##
</dia:string>
642 <dia:attribute name=
"kind">
646 <dia:composite type=
"umlparameter">
647 <dia:attribute name=
"name">
648 <dia:string>#debug#
</dia:string>
650 <dia:attribute name=
"type">
651 <dia:string>#scalar boolean#
</dia:string>
653 <dia:attribute name=
"value">
654 <dia:string>#
1#
</dia:string>
656 <dia:attribute name=
"comment">
657 <dia:string>##
</dia:string>
659 <dia:attribute name=
"kind">
665 <dia:composite type=
"umloperation">
666 <dia:attribute name=
"name">
667 <dia:string>#level_name#
</dia:string>
669 <dia:attribute name=
"stereotype">
670 <dia:string>##
</dia:string>
672 <dia:attribute name=
"type">
673 <dia:string>##
</dia:string>
675 <dia:attribute name=
"visibility">
678 <dia:attribute name=
"comment">
679 <dia:string>##
</dia:string>
681 <dia:attribute name=
"abstract">
682 <dia:boolean val=
"false"/>
684 <dia:attribute name=
"inheritance_type">
687 <dia:attribute name=
"query">
688 <dia:boolean val=
"false"/>
690 <dia:attribute name=
"class_scope">
691 <dia:boolean val=
"false"/>
693 <dia:attribute name=
"parameters">
694 <dia:composite type=
"umlparameter">
695 <dia:attribute name=
"name">
696 <dia:string>#level#
</dia:string>
698 <dia:attribute name=
"type">
699 <dia:string>#scalar string#
</dia:string>
701 <dia:attribute name=
"value">
702 <dia:string>#$self -
> {'level'}#
</dia:string>
704 <dia:attribute name=
"comment">
705 <dia:string>##
</dia:string>
707 <dia:attribute name=
"kind">
711 <dia:composite type=
"umlparameter">
712 <dia:attribute name=
"name">
713 <dia:string>#return_val#
</dia:string>
715 <dia:attribute name=
"type">
716 <dia:string>#scalar string#
</dia:string>
718 <dia:attribute name=
"value">
719 <dia:string>##
</dia:string>
721 <dia:attribute name=
"comment">
722 <dia:string>##
</dia:string>
724 <dia:attribute name=
"kind">
730 <dia:composite type=
"umloperation">
731 <dia:attribute name=
"name">
732 <dia:string>#psn_in_inc#
</dia:string>
734 <dia:attribute name=
"stereotype">
735 <dia:string>##
</dia:string>
737 <dia:attribute name=
"type">
738 <dia:string>##
</dia:string>
740 <dia:attribute name=
"visibility">
743 <dia:attribute name=
"comment">
744 <dia:string>##
</dia:string>
746 <dia:attribute name=
"abstract">
747 <dia:boolean val=
"false"/>
749 <dia:attribute name=
"inheritance_type">
752 <dia:attribute name=
"query">
753 <dia:boolean val=
"false"/>
755 <dia:attribute name=
"class_scope">
756 <dia:boolean val=
"false"/>
758 <dia:attribute name=
"parameters"/>
761 <dia:attribute name=
"template">
762 <dia:boolean val=
"false"/>
764 <dia:attribute name=
"templates"/>