Moving docs tree to docs-xml to make room for generated docs in the release tarball.
[tprouty/samba.git] / docs-xml / xslt / db2latex-xsl / xsl / synop-oop.mod.xsl
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     |   $Id: synop-oop.mod.xsl,v 1.1.1.1 2003/03/14 10:42:53 rcasellas Exp $
6     |- #############################################################################
7     |   $Author: rcasellas $
8     |                                                                                                           
9     |   PURPOSE:
10     + ############################################################################## -->
11
12
13
14     <xsl:template match="classsynopsis">
15         <!-- PARAM language : -->
16         <xsl:param name="language">
17             <xsl:choose>
18                 <xsl:when test="@language">
19                     <xsl:value-of select="@language"/>
20                 </xsl:when>
21                 <xsl:otherwise>
22                     <xsl:value-of select="$default-classsynopsis-language"/>
23                 </xsl:otherwise>
24             </xsl:choose>
25         </xsl:param>
26
27         <xsl:choose>
28             <xsl:when test="$language='java'"> <xsl:apply-templates select="." mode="java"/> </xsl:when>
29             <xsl:when test="$language='perl'"> <xsl:apply-templates select="." mode="perl"/> </xsl:when>
30             <xsl:when test="$language='idl'">  <xsl:apply-templates select="." mode="idl"/>  </xsl:when>
31             <xsl:when test="$language='cpp'">  <xsl:apply-templates select="." mode="cpp"/>  </xsl:when>
32             <xsl:otherwise>
33                 <xsl:message>Unrecognized language on classsynopsis: <xsl:value-of select="$language"/> </xsl:message>
34                 <xsl:apply-templates select=".">
35                     <xsl:with-param name="language"  select="$default-classsynopsis-language"/>
36                 </xsl:apply-templates>
37             </xsl:otherwise>
38         </xsl:choose>
39     </xsl:template>
40
41
42
43
44
45     <!-- ===== Java ======================================================== -->
46
47     <xsl:template match="classsynopsis" mode="java">
48         <pre class="{name(.)}">
49             <xsl:apply-templates select="ooclass[1]" mode="java"/>
50             <xsl:if test="ooclass[position() &gt; 1]">
51                 <xsl:text> extends</xsl:text>
52                 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="java"/>
53                 <xsl:if test="oointerface|ooexception">
54                     <xsl:text>&RE;    </xsl:text>
55                 </xsl:if>
56             </xsl:if>
57             <xsl:if test="oointerface">
58                 <xsl:text>implements</xsl:text>
59                 <xsl:apply-templates select="oointerface" mode="java"/>
60                 <xsl:if test="ooexception">
61                     <xsl:text>&RE;    </xsl:text>
62                 </xsl:if>
63             </xsl:if>
64             <xsl:if test="ooexception">
65                 <xsl:text>throws</xsl:text>
66                 <xsl:apply-templates select="ooexception" mode="java"/>
67             </xsl:if>
68             <xsl:text> {&RE;&RE;</xsl:text>
69             <xsl:apply-templates select="constructorsynopsis
70                 |destructorsynopsis
71                 |fieldsynopsis
72                 |methodsynopsis
73                 |classsynopsisinfo" mode="java"/>
74             <xsl:text>}</xsl:text>
75         </pre>
76     </xsl:template>
77
78     <xsl:template match="classsynopsisinfo" mode="java">
79         <xsl:apply-templates mode="java"/>
80     </xsl:template>
81
82     <xsl:template match="ooclass|oointerface|ooexception" mode="java">
83         <xsl:choose>
84             <xsl:when test="position() &gt; 1">
85                 <xsl:text>, </xsl:text>
86             </xsl:when>
87             <xsl:otherwise>
88                 <xsl:text> </xsl:text>
89             </xsl:otherwise>
90         </xsl:choose>
91
92         <xsl:apply-templates mode="java"/>
93
94     </xsl:template>
95
96     <xsl:template match="modifier" mode="java">
97
98         <xsl:apply-templates mode="java"/>
99         <xsl:text> </xsl:text>
100
101     </xsl:template>
102
103     <xsl:template match="classname" mode="java">
104         <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
105             <xsl:text>, </xsl:text>
106         </xsl:if>
107
108         <xsl:apply-templates mode="java"/>
109
110     </xsl:template>
111
112     <xsl:template match="interfacename" mode="java">
113         <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
114             <xsl:text>, </xsl:text>
115         </xsl:if>
116
117         <xsl:apply-templates mode="java"/>
118
119     </xsl:template>
120
121     <xsl:template match="exceptionname" mode="java">
122         <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
123             <xsl:text>, </xsl:text>
124         </xsl:if>
125
126         <xsl:apply-templates mode="java"/>
127
128     </xsl:template>
129
130     <xsl:template match="fieldsynopsis" mode="java">
131
132         <xsl:text>  </xsl:text>
133         <xsl:apply-templates mode="java"/>
134         <xsl:text>;</xsl:text>
135
136     </xsl:template>
137
138     <xsl:template match="type" mode="java">
139
140         <xsl:apply-templates mode="java"/>
141         <xsl:text> </xsl:text>
142
143     </xsl:template>
144
145     <xsl:template match="varname" mode="java">
146
147         <xsl:apply-templates mode="java"/>
148         <xsl:text> </xsl:text>
149
150     </xsl:template>
151
152     <xsl:template match="initializer" mode="java">
153
154         <xsl:text>= </xsl:text>
155         <xsl:apply-templates mode="java"/>
156
157     </xsl:template>
158
159     <xsl:template match="void" mode="java">
160
161         <xsl:text>void </xsl:text>
162
163     </xsl:template>
164
165     <xsl:template match="methodname" mode="java">
166
167         <xsl:apply-templates mode="java"/>
168     </xsl:template>
169
170
171
172
173     <xsl:template match="methodparam" mode="java">
174         <!-- PARAM: indent := 0 -->
175         <xsl:param name="indent">0</xsl:param>
176         <xsl:if test="position() &gt; 1">
177             <xsl:text>,&RE;</xsl:text>
178             <xsl:if test="$indent &gt; 0">
179                 <!-- RCAS FIXME: copy-string does not exist
180                 <xsl:call-template name="copy-string">
181                     <xsl:with-param name="string"> </xsl:with-param>
182                     <xsl:with-param name="count" select="$indent + 1"/>
183                 </xsl:call-template>
184                 -->
185             </xsl:if>
186         </xsl:if>
187         <xsl:apply-templates mode="java"/>
188     </xsl:template>
189
190
191
192     <xsl:template match="parameter" mode="java">
193         <xsl:apply-templates mode="java"/>
194     </xsl:template>
195
196     <xsl:template mode="java"
197         match="constructorsynopsis|destructorsynopsis|methodsynopsis">
198         <xsl:variable name="modifiers" select="modifier"/>
199         <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
200         <xsl:variable name="decl">
201             <xsl:text>  </xsl:text>
202             <xsl:apply-templates select="$modifiers" mode="java"/>
203
204             <!-- type -->
205             <xsl:if test="name($notmod[1]) != 'methodname'">
206                 <xsl:apply-templates select="$notmod[1]" mode="java"/>
207             </xsl:if>
208
209             <xsl:apply-templates select="methodname" mode="java"/>
210         </xsl:variable>
211
212
213         <xsl:copy-of select="$decl"/>
214         <xsl:text>(</xsl:text>
215         <xsl:apply-templates select="methodparam" mode="java">
216             <xsl:with-param name="indent" select="string-length($decl)"/>
217         </xsl:apply-templates>
218         <xsl:text>)</xsl:text>
219         <xsl:if test="exceptionname">
220             <xsl:text>&RE;    throws </xsl:text>
221             <xsl:apply-templates select="exceptionname" mode="java"/>
222         </xsl:if>
223         <xsl:text>;</xsl:text>
224
225     </xsl:template>
226
227     <!-- ===== C++ ========================================================= -->
228
229     <xsl:template match="classsynopsis" mode="cpp">
230         <pre class="{name(.)}">
231             <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
232             <xsl:if test="ooclass[position() &gt; 1]">
233                 <xsl:text>: </xsl:text>
234                 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="cpp"/>
235                 <xsl:if test="oointerface|ooexception">
236                     <xsl:text>&RE;    </xsl:text>
237                 </xsl:if>
238             </xsl:if>
239             <xsl:if test="oointerface">
240                 <xsl:text> implements</xsl:text>
241                 <xsl:apply-templates select="oointerface" mode="cpp"/>
242                 <xsl:if test="ooexception">
243                     <xsl:text>&RE;    </xsl:text>
244                 </xsl:if>
245             </xsl:if>
246             <xsl:if test="ooexception">
247                 <xsl:text> throws</xsl:text>
248                 <xsl:apply-templates select="ooexception" mode="cpp"/>
249             </xsl:if>
250             <xsl:text> {&RE;&RE;</xsl:text>
251             <xsl:apply-templates select="constructorsynopsis
252                 |destructorsynopsis
253                 |fieldsynopsis
254                 |methodsynopsis
255                 |classsynopsisinfo" mode="cpp"/>
256             <xsl:text>}</xsl:text>
257         </pre>
258     </xsl:template>
259
260     <xsl:template match="classsynopsisinfo" mode="cpp">
261         <xsl:apply-templates mode="cpp"/>
262     </xsl:template>
263
264     <xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
265         <xsl:if test="position() &gt; 1">
266             <xsl:text>, </xsl:text>
267         </xsl:if>
268
269         <xsl:apply-templates mode="cpp"/>
270
271     </xsl:template>
272
273     <xsl:template match="modifier" mode="cpp">
274
275         <xsl:apply-templates mode="cpp"/>
276         <xsl:text> </xsl:text>
277
278     </xsl:template>
279
280     <xsl:template match="classname" mode="cpp">
281         <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
282             <xsl:text>, </xsl:text>
283         </xsl:if>
284
285         <xsl:apply-templates mode="cpp"/>
286
287     </xsl:template>
288
289     <xsl:template match="interfacename" mode="cpp">
290         <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
291             <xsl:text>, </xsl:text>
292         </xsl:if>
293
294         <xsl:apply-templates mode="cpp"/>
295
296     </xsl:template>
297
298     <xsl:template match="exceptionname" mode="cpp">
299         <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
300             <xsl:text>, </xsl:text>
301         </xsl:if>
302
303         <xsl:apply-templates mode="cpp"/>
304
305     </xsl:template>
306
307     <xsl:template match="fieldsynopsis" mode="cpp">
308
309         <xsl:text>  </xsl:text>
310         <xsl:apply-templates mode="cpp"/>
311         <xsl:text>;</xsl:text>
312
313     </xsl:template>
314
315     <xsl:template match="type" mode="cpp">
316
317         <xsl:apply-templates mode="cpp"/>
318         <xsl:text> </xsl:text>
319
320     </xsl:template>
321
322     <xsl:template match="varname" mode="cpp">
323
324         <xsl:apply-templates mode="cpp"/>
325         <xsl:text> </xsl:text>
326
327     </xsl:template>
328
329     <xsl:template match="initializer" mode="cpp">
330
331         <xsl:text>= </xsl:text>
332         <xsl:apply-templates mode="cpp"/>
333
334     </xsl:template>
335
336     <xsl:template match="void" mode="cpp">
337
338         <xsl:text>void </xsl:text>
339
340     </xsl:template>
341
342     <xsl:template match="methodname" mode="cpp">
343
344         <xsl:apply-templates mode="cpp"/>
345
346     </xsl:template>
347
348     <xsl:template match="methodparam" mode="cpp">
349         <xsl:if test="position() &gt; 1">
350             <xsl:text>, </xsl:text>
351         </xsl:if>
352
353         <xsl:apply-templates mode="cpp"/>
354
355     </xsl:template>
356
357     <xsl:template match="parameter" mode="cpp">
358
359         <xsl:apply-templates mode="cpp"/>
360
361     </xsl:template>
362
363     <xsl:template mode="cpp"
364         match="constructorsynopsis|destructorsynopsis|methodsynopsis">
365         <xsl:variable name="modifiers" select="modifier"/>
366         <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
367         <xsl:variable name="type">
368         </xsl:variable>
369
370         <xsl:text>  </xsl:text>
371         <xsl:apply-templates select="$modifiers" mode="cpp"/>
372
373         <!-- type -->
374         <xsl:if test="name($notmod[1]) != 'methodname'">
375             <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
376         </xsl:if>
377
378         <xsl:apply-templates select="methodname" mode="cpp"/>
379         <xsl:text>(</xsl:text>
380         <xsl:apply-templates select="methodparam" mode="cpp"/>
381         <xsl:text>)</xsl:text>
382         <xsl:if test="exceptionname">
383             <xsl:text>&RE;    throws </xsl:text>
384             <xsl:apply-templates select="exceptionname" mode="cpp"/>
385         </xsl:if>
386         <xsl:text>;</xsl:text>
387
388     </xsl:template>
389
390     <!-- ===== IDL ========================================================= -->
391
392     <xsl:template match="classsynopsis" mode="idl">
393         <pre class="{name(.)}">
394             <xsl:text>interface </xsl:text>
395             <xsl:apply-templates select="ooclass[1]" mode="idl"/>
396             <xsl:if test="ooclass[position() &gt; 1]">
397                 <xsl:text>: </xsl:text>
398                 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="idl"/>
399                 <xsl:if test="oointerface|ooexception">
400                     <xsl:text>&RE;    </xsl:text>
401                 </xsl:if>
402             </xsl:if>
403             <xsl:if test="oointerface">
404                 <xsl:text> implements</xsl:text>
405                 <xsl:apply-templates select="oointerface" mode="idl"/>
406                 <xsl:if test="ooexception">
407                     <xsl:text>&RE;    </xsl:text>
408                 </xsl:if>
409             </xsl:if>
410             <xsl:if test="ooexception">
411                 <xsl:text> throws</xsl:text>
412                 <xsl:apply-templates select="ooexception" mode="idl"/>
413             </xsl:if>
414             <xsl:text> {&RE;&RE;</xsl:text>
415             <xsl:apply-templates select="constructorsynopsis
416                 |destructorsynopsis
417                 |fieldsynopsis
418                 |methodsynopsis
419                 |classsynopsisinfo" mode="idl"/>
420             <xsl:text>}</xsl:text>
421         </pre>
422     </xsl:template>
423
424     <xsl:template match="classsynopsisinfo" mode="idl">
425         <xsl:apply-templates mode="idl"/>
426     </xsl:template>
427
428     <xsl:template match="ooclass|oointerface|ooexception" mode="idl">
429         <xsl:if test="position() &gt; 1">
430             <xsl:text>, </xsl:text>
431         </xsl:if>
432
433         <xsl:apply-templates mode="idl"/>
434
435     </xsl:template>
436
437     <xsl:template match="modifier" mode="idl">
438
439         <xsl:apply-templates mode="idl"/>
440         <xsl:text> </xsl:text>
441
442     </xsl:template>
443
444     <xsl:template match="classname" mode="idl">
445         <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
446             <xsl:text>, </xsl:text>
447         </xsl:if>
448
449         <xsl:apply-templates mode="idl"/>
450
451     </xsl:template>
452
453     <xsl:template match="interfacename" mode="idl">
454         <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
455             <xsl:text>, </xsl:text>
456         </xsl:if>
457
458         <xsl:apply-templates mode="idl"/>
459
460     </xsl:template>
461
462     <xsl:template match="exceptionname" mode="idl">
463         <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
464             <xsl:text>, </xsl:text>
465         </xsl:if>
466
467         <xsl:apply-templates mode="idl"/>
468
469     </xsl:template>
470
471     <xsl:template match="fieldsynopsis" mode="idl">
472
473         <xsl:text>  </xsl:text>
474         <xsl:apply-templates mode="idl"/>
475         <xsl:text>;</xsl:text>
476
477     </xsl:template>
478
479     <xsl:template match="type" mode="idl">
480
481         <xsl:apply-templates mode="idl"/>
482         <xsl:text> </xsl:text>
483
484     </xsl:template>
485
486     <xsl:template match="varname" mode="idl">
487
488         <xsl:apply-templates mode="idl"/>
489         <xsl:text> </xsl:text>
490
491     </xsl:template>
492
493     <xsl:template match="initializer" mode="idl">
494
495         <xsl:text>= </xsl:text>
496         <xsl:apply-templates mode="idl"/>
497
498     </xsl:template>
499
500     <xsl:template match="void" mode="idl">
501
502         <xsl:text>void </xsl:text>
503
504     </xsl:template>
505
506     <xsl:template match="methodname" mode="idl">
507
508         <xsl:apply-templates mode="idl"/>
509
510     </xsl:template>
511
512     <xsl:template match="methodparam" mode="idl">
513         <xsl:if test="position() &gt; 1">
514             <xsl:text>, </xsl:text>
515         </xsl:if>
516
517         <xsl:apply-templates mode="idl"/>
518
519     </xsl:template>
520
521     <xsl:template match="parameter" mode="idl">
522
523         <xsl:apply-templates mode="idl"/>
524
525     </xsl:template>
526
527     <xsl:template mode="idl"
528         match="constructorsynopsis|destructorsynopsis|methodsynopsis">
529         <xsl:variable name="modifiers" select="modifier"/>
530         <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
531         <xsl:variable name="type">
532         </xsl:variable>
533
534         <xsl:text>  </xsl:text>
535         <xsl:apply-templates select="$modifiers" mode="idl"/>
536
537         <!-- type -->
538         <xsl:if test="name($notmod[1]) != 'methodname'">
539             <xsl:apply-templates select="$notmod[1]" mode="idl"/>
540         </xsl:if>
541
542         <xsl:apply-templates select="methodname" mode="idl"/>
543         <xsl:text>(</xsl:text>
544         <xsl:apply-templates select="methodparam" mode="idl"/>
545         <xsl:text>)</xsl:text>
546         <xsl:if test="exceptionname">
547             <xsl:text>&RE;    raises(</xsl:text>
548             <xsl:apply-templates select="exceptionname" mode="idl"/>
549             <xsl:text>)</xsl:text>
550         </xsl:if>
551         <xsl:text>;</xsl:text>
552
553     </xsl:template>
554
555
556
557
558
559     <!-- ===== Perl ======================================================== -->
560
561     <xsl:template match="classsynopsis" mode="perl">
562         <pre class="{name(.)}">
563             <xsl:text>package </xsl:text>
564             <xsl:apply-templates select="ooclass[1]" mode="perl"/>
565             <xsl:text>;&RE;</xsl:text>
566
567             <xsl:if test="ooclass[position() &gt; 1]">
568                 <xsl:text>@ISA = (</xsl:text>
569                 <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="perl"/>
570                 <xsl:text>);&RE;</xsl:text>
571             </xsl:if>
572
573             <xsl:apply-templates select="constructorsynopsis
574                 |destructorsynopsis
575                 |fieldsynopsis
576                 |methodsynopsis
577                 |classsynopsisinfo" mode="perl"/>
578         </pre>
579     </xsl:template>
580
581     <xsl:template match="classsynopsisinfo" mode="perl">
582         <xsl:apply-templates mode="perl"/>
583     </xsl:template>
584
585     <xsl:template match="ooclass|oointerface|ooexception" mode="perl">
586         <xsl:if test="position() &gt; 1">
587             <xsl:text>, </xsl:text>
588         </xsl:if>
589
590         <xsl:apply-templates mode="perl"/>
591
592     </xsl:template>
593
594     <xsl:template match="modifier" mode="perl">
595
596         <xsl:apply-templates mode="perl"/>
597         <xsl:text> </xsl:text>
598
599     </xsl:template>
600
601     <xsl:template match="classname" mode="perl">
602         <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
603             <xsl:text>, </xsl:text>
604         </xsl:if>
605
606         <xsl:apply-templates mode="perl"/>
607
608     </xsl:template>
609
610     <xsl:template match="interfacename" mode="perl">
611         <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
612             <xsl:text>, </xsl:text>
613         </xsl:if>
614
615         <xsl:apply-templates mode="perl"/>
616
617     </xsl:template>
618
619     <xsl:template match="exceptionname" mode="perl">
620         <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
621             <xsl:text>, </xsl:text>
622         </xsl:if>
623
624         <xsl:apply-templates mode="perl"/>
625
626     </xsl:template>
627
628     <xsl:template match="fieldsynopsis" mode="perl">
629
630         <xsl:text>  </xsl:text>
631         <xsl:apply-templates mode="perl"/>
632         <xsl:text>;</xsl:text>
633
634     </xsl:template>
635
636     <xsl:template match="type" mode="perl">
637
638         <xsl:apply-templates mode="perl"/>
639         <xsl:text> </xsl:text>
640
641     </xsl:template>
642
643     <xsl:template match="varname" mode="perl">
644
645         <xsl:apply-templates mode="perl"/>
646         <xsl:text> </xsl:text>
647
648     </xsl:template>
649
650     <xsl:template match="initializer" mode="perl">
651
652         <xsl:text>= </xsl:text>
653         <xsl:apply-templates mode="perl"/>
654
655     </xsl:template>
656
657     <xsl:template match="void" mode="perl">
658
659         <xsl:text>void </xsl:text>
660
661     </xsl:template>
662
663
664
665     <xsl:template match="methodname" mode="perl">
666         <xsl:apply-templates mode="perl"/>
667     </xsl:template>
668
669     <xsl:template match="methodparam" mode="perl">
670         <xsl:if test="position() &gt; 1"> <xsl:text>, </xsl:text> </xsl:if>
671         <xsl:apply-templates mode="perl"/>
672     </xsl:template>
673
674
675     <xsl:template match="parameter" mode="perl">
676         <xsl:apply-templates mode="perl"/>
677     </xsl:template>
678
679
680     <xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
681         <xsl:variable name="modifiers" select="modifier"/>
682         <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
683         <xsl:variable name="type"> </xsl:variable>
684
685         <xsl:text>sub </xsl:text>
686
687         <xsl:apply-templates select="methodname" mode="perl"/>
688         <xsl:text> { ... };</xsl:text>
689     </xsl:template>
690
691 </xsl:stylesheet>