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,15.8"/>
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.650000000000002"/>
79 <dia:attribute name=
"elem_height">
80 <dia:real val=
"14.600000000000001"/>
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=
"line_color">
116 <dia:color val=
"#000000"/>
118 <dia:attribute name=
"fill_color">
119 <dia:color val=
"#ffffff"/>
121 <dia:attribute name=
"text_color">
122 <dia:color val=
"#000000"/>
124 <dia:attribute name=
"normal_font">
125 <dia:font family=
"monospace" style=
"0" name=
"Courier"/>
127 <dia:attribute name=
"abstract_font">
128 <dia:font family=
"monospace" style=
"88" name=
"Courier"/>
130 <dia:attribute name=
"polymorphic_font">
131 <dia:font family=
"monospace" style=
"8" name=
"Courier"/>
133 <dia:attribute name=
"classname_font">
134 <dia:font family=
"sans" style=
"80" name=
"Helvetica"/>
136 <dia:attribute name=
"abstract_classname_font">
137 <dia:font family=
"sans" style=
"88" name=
"Helvetica"/>
139 <dia:attribute name=
"comment_font">
140 <dia:font family=
"sans" style=
"8" name=
"Helvetica"/>
142 <dia:attribute name=
"font_height">
143 <dia:real val=
"0.80000000000000004"/>
145 <dia:attribute name=
"polymorphic_font_height">
146 <dia:real val=
"0.80000000000000004"/>
148 <dia:attribute name=
"abstract_font_height">
149 <dia:real val=
"0.80000000000000004"/>
151 <dia:attribute name=
"classname_font_height">
154 <dia:attribute name=
"abstract_classname_font_height">
157 <dia:attribute name=
"comment_font_height">
160 <dia:attribute name=
"attributes">
161 <dia:composite type=
"umlattribute">
162 <dia:attribute name=
"name">
163 <dia:string>#level#
</dia:string>
165 <dia:attribute name=
"type">
166 <dia:string>#scalar integer#
</dia:string>
168 <dia:attribute name=
"value">
169 <dia:string>#
0#
</dia:string>
171 <dia:attribute name=
"comment">
172 <dia:string>##
</dia:string>
174 <dia:attribute name=
"visibility">
177 <dia:attribute name=
"abstract">
178 <dia:boolean val=
"false"/>
180 <dia:attribute name=
"class_scope">
181 <dia:boolean val=
"false"/>
184 <dia:composite type=
"umlattribute">
185 <dia:attribute name=
"name">
186 <dia:string>#warn_with_trace#
</dia:string>
188 <dia:attribute name=
"type">
189 <dia:string>#scalar integer#
</dia:string>
191 <dia:attribute name=
"value">
192 <dia:string>#
0#
</dia:string>
194 <dia:attribute name=
"comment">
195 <dia:string>##
</dia:string>
197 <dia:attribute name=
"visibility">
200 <dia:attribute name=
"abstract">
201 <dia:boolean val=
"false"/>
203 <dia:attribute name=
"class_scope">
204 <dia:boolean val=
"false"/>
207 <dia:composite type=
"umlattribute">
208 <dia:attribute name=
"name">
209 <dia:string>#level_names#
</dia:string>
211 <dia:attribute name=
"type">
212 <dia:string>#array of strings#
</dia:string>
214 <dia:attribute name=
"value">
215 <dia:string>#['Fatal Error', 'Warning', 'Information','Call History']#
</dia:string>
217 <dia:attribute name=
"comment">
218 <dia:string>##
</dia:string>
220 <dia:attribute name=
"visibility">
223 <dia:attribute name=
"abstract">
224 <dia:boolean val=
"false"/>
226 <dia:attribute name=
"class_scope">
227 <dia:boolean val=
"false"/>
230 <dia:composite type=
"umlattribute">
231 <dia:attribute name=
"name">
232 <dia:string>#specific_classes#
</dia:string>
234 <dia:attribute name=
"type">
235 <dia:string>#hash of strings to booleans#
</dia:string>
237 <dia:attribute name=
"value">
238 <dia:string>#{}#
</dia:string>
240 <dia:attribute name=
"comment">
241 <dia:string>##
</dia:string>
243 <dia:attribute name=
"visibility">
246 <dia:attribute name=
"abstract">
247 <dia:boolean val=
"false"/>
249 <dia:attribute name=
"class_scope">
250 <dia:boolean val=
"false"/>
253 <dia:composite type=
"umlattribute">
254 <dia:attribute name=
"name">
255 <dia:string>#specific_methods#
</dia:string>
257 <dia:attribute name=
"type">
258 <dia:string>#hash of strings to booleans#
</dia:string>
260 <dia:attribute name=
"value">
261 <dia:string>#{}#
</dia:string>
263 <dia:attribute name=
"comment">
264 <dia:string>##
</dia:string>
266 <dia:attribute name=
"visibility">
269 <dia:attribute name=
"abstract">
270 <dia:boolean val=
"false"/>
272 <dia:attribute name=
"class_scope">
273 <dia:boolean val=
"false"/>
276 <dia:composite type=
"umlattribute">
277 <dia:attribute name=
"name">
278 <dia:string>#fatal#
</dia:string>
280 <dia:attribute name=
"type">
281 <dia:string>#scalar integer#
</dia:string>
283 <dia:attribute name=
"value">
284 <dia:string>#
0#
</dia:string>
286 <dia:attribute name=
"comment">
287 <dia:string>##
</dia:string>
289 <dia:attribute name=
"visibility">
292 <dia:attribute name=
"abstract">
293 <dia:boolean val=
"false"/>
295 <dia:attribute name=
"class_scope">
296 <dia:boolean val=
"false"/>
299 <dia:composite type=
"umlattribute">
300 <dia:attribute name=
"name">
301 <dia:string>#warning#
</dia:string>
303 <dia:attribute name=
"type">
304 <dia:string>#scalar integer#
</dia:string>
306 <dia:attribute name=
"value">
307 <dia:string>#
1#
</dia:string>
309 <dia:attribute name=
"comment">
310 <dia:string>##
</dia:string>
312 <dia:attribute name=
"visibility">
315 <dia:attribute name=
"abstract">
316 <dia:boolean val=
"false"/>
318 <dia:attribute name=
"class_scope">
319 <dia:boolean val=
"false"/>
322 <dia:composite type=
"umlattribute">
323 <dia:attribute name=
"name">
324 <dia:string>#information#
</dia:string>
326 <dia:attribute name=
"type">
327 <dia:string>#scalar integer#
</dia:string>
329 <dia:attribute name=
"value">
330 <dia:string>#
2#
</dia:string>
332 <dia:attribute name=
"comment">
333 <dia:string>##
</dia:string>
335 <dia:attribute name=
"visibility">
338 <dia:attribute name=
"abstract">
339 <dia:boolean val=
"false"/>
341 <dia:attribute name=
"class_scope">
342 <dia:boolean val=
"false"/>
345 <dia:composite type=
"umlattribute">
346 <dia:attribute name=
"name">
347 <dia:string>#call_trace#
</dia:string>
349 <dia:attribute name=
"type">
350 <dia:string>#scalar integer#
</dia:string>
352 <dia:attribute name=
"value">
353 <dia:string>#
3#
</dia:string>
355 <dia:attribute name=
"comment">
356 <dia:string>##
</dia:string>
358 <dia:attribute name=
"visibility">
361 <dia:attribute name=
"abstract">
362 <dia:boolean val=
"false"/>
364 <dia:attribute name=
"class_scope">
365 <dia:boolean val=
"false"/>
368 <dia:composite type=
"umlattribute">
369 <dia:attribute name=
"name">
370 <dia:string>#package#
</dia:string>
372 <dia:attribute name=
"type">
373 <dia:string>#scalar string#
</dia:string>
375 <dia:attribute name=
"value">
376 <dia:string>##
</dia:string>
378 <dia:attribute name=
"comment">
379 <dia:string>##
</dia:string>
381 <dia:attribute name=
"visibility">
384 <dia:attribute name=
"abstract">
385 <dia:boolean val=
"false"/>
387 <dia:attribute name=
"class_scope">
388 <dia:boolean val=
"false"/>
391 <dia:composite type=
"umlattribute">
392 <dia:attribute name=
"name">
393 <dia:string>#subroutine#
</dia:string>
395 <dia:attribute name=
"type">
396 <dia:string>#scalar string#
</dia:string>
398 <dia:attribute name=
"value">
399 <dia:string>##
</dia:string>
401 <dia:attribute name=
"comment">
402 <dia:string>##
</dia:string>
404 <dia:attribute name=
"visibility">
407 <dia:attribute name=
"abstract">
408 <dia:boolean val=
"false"/>
410 <dia:attribute name=
"class_scope">
411 <dia:boolean val=
"false"/>
415 <dia:attribute name=
"operations">
416 <dia:composite type=
"umloperation">
417 <dia:attribute name=
"name">
418 <dia:string>#warn#
</dia:string>
420 <dia:attribute name=
"stereotype">
421 <dia:string>##
</dia:string>
423 <dia:attribute name=
"type">
424 <dia:string>##
</dia:string>
426 <dia:attribute name=
"visibility">
429 <dia:attribute name=
"comment">
430 <dia:string>##
</dia:string>
432 <dia:attribute name=
"abstract">
433 <dia:boolean val=
"false"/>
435 <dia:attribute name=
"inheritance_type">
438 <dia:attribute name=
"query">
439 <dia:boolean val=
"false"/>
441 <dia:attribute name=
"class_scope">
442 <dia:boolean val=
"false"/>
444 <dia:attribute name=
"parameters">
445 <dia:composite type=
"umlparameter">
446 <dia:attribute name=
"name">
447 <dia:string>#message#
</dia:string>
449 <dia:attribute name=
"type">
450 <dia:string>#scalar string#
</dia:string>
452 <dia:attribute name=
"value">
453 <dia:string>#'Default warning message'#
</dia:string>
455 <dia:attribute name=
"comment">
456 <dia:string>##
</dia:string>
458 <dia:attribute name=
"kind">
462 <dia:composite type=
"umlparameter">
463 <dia:attribute name=
"name">
464 <dia:string>#level#
</dia:string>
466 <dia:attribute name=
"type">
467 <dia:string>#scalar integer#
</dia:string>
469 <dia:attribute name=
"value">
470 <dia:string>#
1#
</dia:string>
472 <dia:attribute name=
"comment">
473 <dia:string>##
</dia:string>
475 <dia:attribute name=
"kind">
481 <dia:composite type=
"umloperation">
482 <dia:attribute name=
"name">
483 <dia:string>#die#
</dia:string>
485 <dia:attribute name=
"stereotype">
486 <dia:string>##
</dia:string>
488 <dia:attribute name=
"type">
489 <dia:string>##
</dia:string>
491 <dia:attribute name=
"visibility">
494 <dia:attribute name=
"comment">
495 <dia:string>##
</dia:string>
497 <dia:attribute name=
"abstract">
498 <dia:boolean val=
"false"/>
500 <dia:attribute name=
"inheritance_type">
503 <dia:attribute name=
"query">
504 <dia:boolean val=
"false"/>
506 <dia:attribute name=
"class_scope">
507 <dia:boolean val=
"false"/>
509 <dia:attribute name=
"parameters">
510 <dia:composite type=
"umlparameter">
511 <dia:attribute name=
"name">
512 <dia:string>#message#
</dia:string>
514 <dia:attribute name=
"type">
515 <dia:string>#scalar string#
</dia:string>
517 <dia:attribute name=
"value">
518 <dia:string>#'Default death message'#
</dia:string>
520 <dia:attribute name=
"comment">
521 <dia:string>##
</dia:string>
523 <dia:attribute name=
"kind">
529 <dia:composite type=
"umloperation">
530 <dia:attribute name=
"name">
531 <dia:string>#debug_method#
</dia:string>
533 <dia:attribute name=
"stereotype">
534 <dia:string>##
</dia:string>
536 <dia:attribute name=
"type">
537 <dia:string>##
</dia:string>
539 <dia:attribute name=
"visibility">
542 <dia:attribute name=
"comment">
543 <dia:string>##
</dia:string>
545 <dia:attribute name=
"abstract">
546 <dia:boolean val=
"false"/>
548 <dia:attribute name=
"inheritance_type">
551 <dia:attribute name=
"query">
552 <dia:boolean val=
"false"/>
554 <dia:attribute name=
"class_scope">
555 <dia:boolean val=
"false"/>
557 <dia:attribute name=
"parameters">
558 <dia:composite type=
"umlparameter">
559 <dia:attribute name=
"name">
560 <dia:string>#method_name#
</dia:string>
562 <dia:attribute name=
"type">
563 <dia:string>#scalar string#
</dia:string>
565 <dia:attribute name=
"value">
566 <dia:string>##
</dia:string>
568 <dia:attribute name=
"comment">
569 <dia:string>##
</dia:string>
571 <dia:attribute name=
"kind">
575 <dia:composite type=
"umlparameter">
576 <dia:attribute name=
"name">
577 <dia:string>#debug#
</dia:string>
579 <dia:attribute name=
"type">
580 <dia:string>#scalar boolean#
</dia:string>
582 <dia:attribute name=
"value">
583 <dia:string>#
1#
</dia:string>
585 <dia:attribute name=
"comment">
586 <dia:string>##
</dia:string>
588 <dia:attribute name=
"kind">
594 <dia:composite type=
"umloperation">
595 <dia:attribute name=
"name">
596 <dia:string>#debug_class#
</dia:string>
598 <dia:attribute name=
"stereotype">
599 <dia:string>##
</dia:string>
601 <dia:attribute name=
"type">
602 <dia:string>##
</dia:string>
604 <dia:attribute name=
"visibility">
607 <dia:attribute name=
"comment">
608 <dia:string>##
</dia:string>
610 <dia:attribute name=
"abstract">
611 <dia:boolean val=
"false"/>
613 <dia:attribute name=
"inheritance_type">
616 <dia:attribute name=
"query">
617 <dia:boolean val=
"false"/>
619 <dia:attribute name=
"class_scope">
620 <dia:boolean val=
"false"/>
622 <dia:attribute name=
"parameters">
623 <dia:composite type=
"umlparameter">
624 <dia:attribute name=
"name">
625 <dia:string>#class_name#
</dia:string>
627 <dia:attribute name=
"type">
628 <dia:string>#scalar string#
</dia:string>
630 <dia:attribute name=
"value">
631 <dia:string>##
</dia:string>
633 <dia:attribute name=
"comment">
634 <dia:string>##
</dia:string>
636 <dia:attribute name=
"kind">
640 <dia:composite type=
"umlparameter">
641 <dia:attribute name=
"name">
642 <dia:string>#debug#
</dia:string>
644 <dia:attribute name=
"type">
645 <dia:string>#scalar boolean#
</dia:string>
647 <dia:attribute name=
"value">
648 <dia:string>#
1#
</dia:string>
650 <dia:attribute name=
"comment">
651 <dia:string>##
</dia:string>
653 <dia:attribute name=
"kind">
659 <dia:composite type=
"umloperation">
660 <dia:attribute name=
"name">
661 <dia:string>#level_name#
</dia:string>
663 <dia:attribute name=
"stereotype">
664 <dia:string>##
</dia:string>
666 <dia:attribute name=
"type">
667 <dia:string>##
</dia:string>
669 <dia:attribute name=
"visibility">
672 <dia:attribute name=
"comment">
673 <dia:string>##
</dia:string>
675 <dia:attribute name=
"abstract">
676 <dia:boolean val=
"false"/>
678 <dia:attribute name=
"inheritance_type">
681 <dia:attribute name=
"query">
682 <dia:boolean val=
"false"/>
684 <dia:attribute name=
"class_scope">
685 <dia:boolean val=
"false"/>
687 <dia:attribute name=
"parameters">
688 <dia:composite type=
"umlparameter">
689 <dia:attribute name=
"name">
690 <dia:string>#level#
</dia:string>
692 <dia:attribute name=
"type">
693 <dia:string>#scalar string#
</dia:string>
695 <dia:attribute name=
"value">
696 <dia:string>#$self -
> {'level'}#
</dia:string>
698 <dia:attribute name=
"comment">
699 <dia:string>##
</dia:string>
701 <dia:attribute name=
"kind">
705 <dia:composite type=
"umlparameter">
706 <dia:attribute name=
"name">
707 <dia:string>#return_val#
</dia:string>
709 <dia:attribute name=
"type">
710 <dia:string>#scalar string#
</dia:string>
712 <dia:attribute name=
"value">
713 <dia:string>##
</dia:string>
715 <dia:attribute name=
"comment">
716 <dia:string>##
</dia:string>
718 <dia:attribute name=
"kind">
725 <dia:attribute name=
"template">
726 <dia:boolean val=
"false"/>
728 <dia:attribute name=
"templates"/>