trying to get HEAD building again. If you want the code
[Samba.git] / docs / docbook / xslt / db2latex / synop-oop.mod.xsl
blob93b29c12297a811a024cdabb9e01e35962815f42
1 <?xml version='1.0'?>
2 <!DOCTYPE xsl:stylesheet [ <!ENTITY RE "&#10;"> ]>
3 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
4 <!--#############################################################################
5 |- #############################################################################
6 |
7 | PURPOSE:
8 + ############################################################################## -->
12 <xsl:template match="classsynopsis">
13 <!-- PARAM language : -->
14 <xsl:param name="language">
15 <xsl:choose>
16 <xsl:when test="@language">
17 <xsl:value-of select="@language"/>
18 </xsl:when>
19 <xsl:otherwise>
20 <xsl:value-of select="$default-classsynopsis-language"/>
21 </xsl:otherwise>
22 </xsl:choose>
23 </xsl:param>
25 <xsl:choose>
26 <xsl:when test="$language='java'"> <xsl:apply-templates select="." mode="java"/> </xsl:when>
27 <xsl:when test="$language='perl'"> <xsl:apply-templates select="." mode="perl"/> </xsl:when>
28 <xsl:when test="$language='idl'"> <xsl:apply-templates select="." mode="idl"/> </xsl:when>
29 <xsl:when test="$language='cpp'"> <xsl:apply-templates select="." mode="cpp"/> </xsl:when>
30 <xsl:otherwise>
31 <xsl:message>Unrecognized language on classsynopsis: <xsl:value-of select="$language"/> </xsl:message>
32 <xsl:apply-templates select=".">
33 <xsl:with-param name="language" select="$default-classsynopsis-language"/>
34 </xsl:apply-templates>
35 </xsl:otherwise>
36 </xsl:choose>
37 </xsl:template>
43 <!-- ===== Java ======================================================== -->
45 <xsl:template match="classsynopsis" mode="java">
46 <pre class="{name(.)}">
47 <xsl:apply-templates select="ooclass[1]" mode="java"/>
48 <xsl:if test="ooclass[position() &gt; 1]">
49 <xsl:text> extends</xsl:text>
50 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="java"/>
51 <xsl:if test="oointerface|ooexception">
52 <xsl:text>&RE; </xsl:text>
53 </xsl:if>
54 </xsl:if>
55 <xsl:if test="oointerface">
56 <xsl:text>implements</xsl:text>
57 <xsl:apply-templates select="oointerface" mode="java"/>
58 <xsl:if test="ooexception">
59 <xsl:text>&RE; </xsl:text>
60 </xsl:if>
61 </xsl:if>
62 <xsl:if test="ooexception">
63 <xsl:text>throws</xsl:text>
64 <xsl:apply-templates select="ooexception" mode="java"/>
65 </xsl:if>
66 <xsl:text> {&RE;&RE;</xsl:text>
67 <xsl:apply-templates select="constructorsynopsis
68 |destructorsynopsis
69 |fieldsynopsis
70 |methodsynopsis
71 |classsynopsisinfo" mode="java"/>
72 <xsl:text>}</xsl:text>
73 </pre>
74 </xsl:template>
76 <xsl:template match="classsynopsisinfo" mode="java">
77 <xsl:apply-templates mode="java"/>
78 </xsl:template>
80 <xsl:template match="ooclass|oointerface|ooexception" mode="java">
81 <xsl:choose>
82 <xsl:when test="position() &gt; 1">
83 <xsl:text>, </xsl:text>
84 </xsl:when>
85 <xsl:otherwise>
86 <xsl:text> </xsl:text>
87 </xsl:otherwise>
88 </xsl:choose>
90 <xsl:apply-templates mode="java"/>
92 </xsl:template>
94 <xsl:template match="modifier" mode="java">
96 <xsl:apply-templates mode="java"/>
97 <xsl:text> </xsl:text>
99 </xsl:template>
101 <xsl:template match="classname" mode="java">
102 <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
103 <xsl:text>, </xsl:text>
104 </xsl:if>
106 <xsl:apply-templates mode="java"/>
108 </xsl:template>
110 <xsl:template match="interfacename" mode="java">
111 <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
112 <xsl:text>, </xsl:text>
113 </xsl:if>
115 <xsl:apply-templates mode="java"/>
117 </xsl:template>
119 <xsl:template match="exceptionname" mode="java">
120 <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
121 <xsl:text>, </xsl:text>
122 </xsl:if>
124 <xsl:apply-templates mode="java"/>
126 </xsl:template>
128 <xsl:template match="fieldsynopsis" mode="java">
130 <xsl:text> </xsl:text>
131 <xsl:apply-templates mode="java"/>
132 <xsl:text>;</xsl:text>
134 </xsl:template>
136 <xsl:template match="type" mode="java">
138 <xsl:apply-templates mode="java"/>
139 <xsl:text> </xsl:text>
141 </xsl:template>
143 <xsl:template match="varname" mode="java">
145 <xsl:apply-templates mode="java"/>
146 <xsl:text> </xsl:text>
148 </xsl:template>
150 <xsl:template match="initializer" mode="java">
152 <xsl:text>= </xsl:text>
153 <xsl:apply-templates mode="java"/>
155 </xsl:template>
157 <xsl:template match="void" mode="java">
159 <xsl:text>void </xsl:text>
161 </xsl:template>
163 <xsl:template match="methodname" mode="java">
165 <xsl:apply-templates mode="java"/>
166 </xsl:template>
171 <xsl:template match="methodparam" mode="java">
172 <!-- PARAM: indent := 0 -->
173 <xsl:param name="indent">0</xsl:param>
174 <xsl:if test="position() &gt; 1">
175 <xsl:text>,&RE;</xsl:text>
176 <xsl:if test="$indent &gt; 0">
177 <!-- RCAS FIXME: copy-string does not exist
178 <xsl:call-template name="copy-string">
179 <xsl:with-param name="string"> </xsl:with-param>
180 <xsl:with-param name="count" select="$indent + 1"/>
181 </xsl:call-template>
183 </xsl:if>
184 </xsl:if>
185 <xsl:apply-templates mode="java"/>
186 </xsl:template>
190 <xsl:template match="parameter" mode="java">
191 <xsl:apply-templates mode="java"/>
192 </xsl:template>
194 <xsl:template mode="java"
195 match="constructorsynopsis|destructorsynopsis|methodsynopsis">
196 <xsl:variable name="modifiers" select="modifier"/>
197 <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
198 <xsl:variable name="decl">
199 <xsl:text> </xsl:text>
200 <xsl:apply-templates select="$modifiers" mode="java"/>
202 <!-- type -->
203 <xsl:if test="name($notmod[1]) != 'methodname'">
204 <xsl:apply-templates select="$notmod[1]" mode="java"/>
205 </xsl:if>
207 <xsl:apply-templates select="methodname" mode="java"/>
208 </xsl:variable>
211 <xsl:copy-of select="$decl"/>
212 <xsl:text>(</xsl:text>
213 <xsl:apply-templates select="methodparam" mode="java">
214 <xsl:with-param name="indent" select="string-length($decl)"/>
215 </xsl:apply-templates>
216 <xsl:text>)</xsl:text>
217 <xsl:if test="exceptionname">
218 <xsl:text>&RE; throws </xsl:text>
219 <xsl:apply-templates select="exceptionname" mode="java"/>
220 </xsl:if>
221 <xsl:text>;</xsl:text>
223 </xsl:template>
225 <!-- ===== C++ ========================================================= -->
227 <xsl:template match="classsynopsis" mode="cpp">
228 <pre class="{name(.)}">
229 <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
230 <xsl:if test="ooclass[position() &gt; 1]">
231 <xsl:text>: </xsl:text>
232 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="cpp"/>
233 <xsl:if test="oointerface|ooexception">
234 <xsl:text>&RE; </xsl:text>
235 </xsl:if>
236 </xsl:if>
237 <xsl:if test="oointerface">
238 <xsl:text> implements</xsl:text>
239 <xsl:apply-templates select="oointerface" mode="cpp"/>
240 <xsl:if test="ooexception">
241 <xsl:text>&RE; </xsl:text>
242 </xsl:if>
243 </xsl:if>
244 <xsl:if test="ooexception">
245 <xsl:text> throws</xsl:text>
246 <xsl:apply-templates select="ooexception" mode="cpp"/>
247 </xsl:if>
248 <xsl:text> {&RE;&RE;</xsl:text>
249 <xsl:apply-templates select="constructorsynopsis
250 |destructorsynopsis
251 |fieldsynopsis
252 |methodsynopsis
253 |classsynopsisinfo" mode="cpp"/>
254 <xsl:text>}</xsl:text>
255 </pre>
256 </xsl:template>
258 <xsl:template match="classsynopsisinfo" mode="cpp">
259 <xsl:apply-templates mode="cpp"/>
260 </xsl:template>
262 <xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
263 <xsl:if test="position() &gt; 1">
264 <xsl:text>, </xsl:text>
265 </xsl:if>
267 <xsl:apply-templates mode="cpp"/>
269 </xsl:template>
271 <xsl:template match="modifier" mode="cpp">
273 <xsl:apply-templates mode="cpp"/>
274 <xsl:text> </xsl:text>
276 </xsl:template>
278 <xsl:template match="classname" mode="cpp">
279 <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
280 <xsl:text>, </xsl:text>
281 </xsl:if>
283 <xsl:apply-templates mode="cpp"/>
285 </xsl:template>
287 <xsl:template match="interfacename" mode="cpp">
288 <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
289 <xsl:text>, </xsl:text>
290 </xsl:if>
292 <xsl:apply-templates mode="cpp"/>
294 </xsl:template>
296 <xsl:template match="exceptionname" mode="cpp">
297 <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
298 <xsl:text>, </xsl:text>
299 </xsl:if>
301 <xsl:apply-templates mode="cpp"/>
303 </xsl:template>
305 <xsl:template match="fieldsynopsis" mode="cpp">
307 <xsl:text> </xsl:text>
308 <xsl:apply-templates mode="cpp"/>
309 <xsl:text>;</xsl:text>
311 </xsl:template>
313 <xsl:template match="type" mode="cpp">
315 <xsl:apply-templates mode="cpp"/>
316 <xsl:text> </xsl:text>
318 </xsl:template>
320 <xsl:template match="varname" mode="cpp">
322 <xsl:apply-templates mode="cpp"/>
323 <xsl:text> </xsl:text>
325 </xsl:template>
327 <xsl:template match="initializer" mode="cpp">
329 <xsl:text>= </xsl:text>
330 <xsl:apply-templates mode="cpp"/>
332 </xsl:template>
334 <xsl:template match="void" mode="cpp">
336 <xsl:text>void </xsl:text>
338 </xsl:template>
340 <xsl:template match="methodname" mode="cpp">
342 <xsl:apply-templates mode="cpp"/>
344 </xsl:template>
346 <xsl:template match="methodparam" mode="cpp">
347 <xsl:if test="position() &gt; 1">
348 <xsl:text>, </xsl:text>
349 </xsl:if>
351 <xsl:apply-templates mode="cpp"/>
353 </xsl:template>
355 <xsl:template match="parameter" mode="cpp">
357 <xsl:apply-templates mode="cpp"/>
359 </xsl:template>
361 <xsl:template mode="cpp"
362 match="constructorsynopsis|destructorsynopsis|methodsynopsis">
363 <xsl:variable name="modifiers" select="modifier"/>
364 <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
365 <xsl:variable name="type">
366 </xsl:variable>
368 <xsl:text> </xsl:text>
369 <xsl:apply-templates select="$modifiers" mode="cpp"/>
371 <!-- type -->
372 <xsl:if test="name($notmod[1]) != 'methodname'">
373 <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
374 </xsl:if>
376 <xsl:apply-templates select="methodname" mode="cpp"/>
377 <xsl:text>(</xsl:text>
378 <xsl:apply-templates select="methodparam" mode="cpp"/>
379 <xsl:text>)</xsl:text>
380 <xsl:if test="exceptionname">
381 <xsl:text>&RE; throws </xsl:text>
382 <xsl:apply-templates select="exceptionname" mode="cpp"/>
383 </xsl:if>
384 <xsl:text>;</xsl:text>
386 </xsl:template>
388 <!-- ===== IDL ========================================================= -->
390 <xsl:template match="classsynopsis" mode="idl">
391 <pre class="{name(.)}">
392 <xsl:text>interface </xsl:text>
393 <xsl:apply-templates select="ooclass[1]" mode="idl"/>
394 <xsl:if test="ooclass[position() &gt; 1]">
395 <xsl:text>: </xsl:text>
396 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="idl"/>
397 <xsl:if test="oointerface|ooexception">
398 <xsl:text>&RE; </xsl:text>
399 </xsl:if>
400 </xsl:if>
401 <xsl:if test="oointerface">
402 <xsl:text> implements</xsl:text>
403 <xsl:apply-templates select="oointerface" mode="idl"/>
404 <xsl:if test="ooexception">
405 <xsl:text>&RE; </xsl:text>
406 </xsl:if>
407 </xsl:if>
408 <xsl:if test="ooexception">
409 <xsl:text> throws</xsl:text>
410 <xsl:apply-templates select="ooexception" mode="idl"/>
411 </xsl:if>
412 <xsl:text> {&RE;&RE;</xsl:text>
413 <xsl:apply-templates select="constructorsynopsis
414 |destructorsynopsis
415 |fieldsynopsis
416 |methodsynopsis
417 |classsynopsisinfo" mode="idl"/>
418 <xsl:text>}</xsl:text>
419 </pre>
420 </xsl:template>
422 <xsl:template match="classsynopsisinfo" mode="idl">
423 <xsl:apply-templates mode="idl"/>
424 </xsl:template>
426 <xsl:template match="ooclass|oointerface|ooexception" mode="idl">
427 <xsl:if test="position() &gt; 1">
428 <xsl:text>, </xsl:text>
429 </xsl:if>
431 <xsl:apply-templates mode="idl"/>
433 </xsl:template>
435 <xsl:template match="modifier" mode="idl">
437 <xsl:apply-templates mode="idl"/>
438 <xsl:text> </xsl:text>
440 </xsl:template>
442 <xsl:template match="classname" mode="idl">
443 <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
444 <xsl:text>, </xsl:text>
445 </xsl:if>
447 <xsl:apply-templates mode="idl"/>
449 </xsl:template>
451 <xsl:template match="interfacename" mode="idl">
452 <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
453 <xsl:text>, </xsl:text>
454 </xsl:if>
456 <xsl:apply-templates mode="idl"/>
458 </xsl:template>
460 <xsl:template match="exceptionname" mode="idl">
461 <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
462 <xsl:text>, </xsl:text>
463 </xsl:if>
465 <xsl:apply-templates mode="idl"/>
467 </xsl:template>
469 <xsl:template match="fieldsynopsis" mode="idl">
471 <xsl:text> </xsl:text>
472 <xsl:apply-templates mode="idl"/>
473 <xsl:text>;</xsl:text>
475 </xsl:template>
477 <xsl:template match="type" mode="idl">
479 <xsl:apply-templates mode="idl"/>
480 <xsl:text> </xsl:text>
482 </xsl:template>
484 <xsl:template match="varname" mode="idl">
486 <xsl:apply-templates mode="idl"/>
487 <xsl:text> </xsl:text>
489 </xsl:template>
491 <xsl:template match="initializer" mode="idl">
493 <xsl:text>= </xsl:text>
494 <xsl:apply-templates mode="idl"/>
496 </xsl:template>
498 <xsl:template match="void" mode="idl">
500 <xsl:text>void </xsl:text>
502 </xsl:template>
504 <xsl:template match="methodname" mode="idl">
506 <xsl:apply-templates mode="idl"/>
508 </xsl:template>
510 <xsl:template match="methodparam" mode="idl">
511 <xsl:if test="position() &gt; 1">
512 <xsl:text>, </xsl:text>
513 </xsl:if>
515 <xsl:apply-templates mode="idl"/>
517 </xsl:template>
519 <xsl:template match="parameter" mode="idl">
521 <xsl:apply-templates mode="idl"/>
523 </xsl:template>
525 <xsl:template mode="idl"
526 match="constructorsynopsis|destructorsynopsis|methodsynopsis">
527 <xsl:variable name="modifiers" select="modifier"/>
528 <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
529 <xsl:variable name="type">
530 </xsl:variable>
532 <xsl:text> </xsl:text>
533 <xsl:apply-templates select="$modifiers" mode="idl"/>
535 <!-- type -->
536 <xsl:if test="name($notmod[1]) != 'methodname'">
537 <xsl:apply-templates select="$notmod[1]" mode="idl"/>
538 </xsl:if>
540 <xsl:apply-templates select="methodname" mode="idl"/>
541 <xsl:text>(</xsl:text>
542 <xsl:apply-templates select="methodparam" mode="idl"/>
543 <xsl:text>)</xsl:text>
544 <xsl:if test="exceptionname">
545 <xsl:text>&RE; raises(</xsl:text>
546 <xsl:apply-templates select="exceptionname" mode="idl"/>
547 <xsl:text>)</xsl:text>
548 </xsl:if>
549 <xsl:text>;</xsl:text>
551 </xsl:template>
557 <!-- ===== Perl ======================================================== -->
559 <xsl:template match="classsynopsis" mode="perl">
560 <pre class="{name(.)}">
561 <xsl:text>package </xsl:text>
562 <xsl:apply-templates select="ooclass[1]" mode="perl"/>
563 <xsl:text>;&RE;</xsl:text>
565 <xsl:if test="ooclass[position() &gt; 1]">
566 <xsl:text>@ISA = (</xsl:text>
567 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="perl"/>
568 <xsl:text>);&RE;</xsl:text>
569 </xsl:if>
571 <xsl:apply-templates select="constructorsynopsis
572 |destructorsynopsis
573 |fieldsynopsis
574 |methodsynopsis
575 |classsynopsisinfo" mode="perl"/>
576 </pre>
577 </xsl:template>
579 <xsl:template match="classsynopsisinfo" mode="perl">
580 <xsl:apply-templates mode="perl"/>
581 </xsl:template>
583 <xsl:template match="ooclass|oointerface|ooexception" mode="perl">
584 <xsl:if test="position() &gt; 1">
585 <xsl:text>, </xsl:text>
586 </xsl:if>
588 <xsl:apply-templates mode="perl"/>
590 </xsl:template>
592 <xsl:template match="modifier" mode="perl">
594 <xsl:apply-templates mode="perl"/>
595 <xsl:text> </xsl:text>
597 </xsl:template>
599 <xsl:template match="classname" mode="perl">
600 <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
601 <xsl:text>, </xsl:text>
602 </xsl:if>
604 <xsl:apply-templates mode="perl"/>
606 </xsl:template>
608 <xsl:template match="interfacename" mode="perl">
609 <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
610 <xsl:text>, </xsl:text>
611 </xsl:if>
613 <xsl:apply-templates mode="perl"/>
615 </xsl:template>
617 <xsl:template match="exceptionname" mode="perl">
618 <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
619 <xsl:text>, </xsl:text>
620 </xsl:if>
622 <xsl:apply-templates mode="perl"/>
624 </xsl:template>
626 <xsl:template match="fieldsynopsis" mode="perl">
628 <xsl:text> </xsl:text>
629 <xsl:apply-templates mode="perl"/>
630 <xsl:text>;</xsl:text>
632 </xsl:template>
634 <xsl:template match="type" mode="perl">
636 <xsl:apply-templates mode="perl"/>
637 <xsl:text> </xsl:text>
639 </xsl:template>
641 <xsl:template match="varname" mode="perl">
643 <xsl:apply-templates mode="perl"/>
644 <xsl:text> </xsl:text>
646 </xsl:template>
648 <xsl:template match="initializer" mode="perl">
650 <xsl:text>= </xsl:text>
651 <xsl:apply-templates mode="perl"/>
653 </xsl:template>
655 <xsl:template match="void" mode="perl">
657 <xsl:text>void </xsl:text>
659 </xsl:template>
663 <xsl:template match="methodname" mode="perl">
664 <xsl:apply-templates mode="perl"/>
665 </xsl:template>
667 <xsl:template match="methodparam" mode="perl">
668 <xsl:if test="position() &gt; 1"> <xsl:text>, </xsl:text> </xsl:if>
669 <xsl:apply-templates mode="perl"/>
670 </xsl:template>
673 <xsl:template match="parameter" mode="perl">
674 <xsl:apply-templates mode="perl"/>
675 </xsl:template>
678 <xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
679 <xsl:variable name="modifiers" select="modifier"/>
680 <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
681 <xsl:variable name="type"> </xsl:variable>
683 <xsl:text>sub </xsl:text>
685 <xsl:apply-templates select="methodname" mode="perl"/>
686 <xsl:text> { ... };</xsl:text>
687 </xsl:template>
689 </xsl:stylesheet>