1 <?xml version="1.0" encoding="utf-8"?>
\r
4 Copyright (C) 2003 Free Software Foundation, Inc.
\r
6 This file is part of GNU Classpath.
\r
8 GNU Classpath is free software; you can redistribute it and/or modify
\r
9 it under the terms of the GNU General Public License as published by
\r
10 the Free Software Foundation; either version 2, or (at your option)
\r
13 GNU Classpath is distributed in the hope that it will be useful, but
\r
14 WITHOUT ANY WARRANTY; without even the implied warranty of
\r
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
\r
16 General Public License for more details.
\r
18 You should have received a copy of the GNU General Public License
\r
19 along with GNU Classpath; see the file COPYING. If not, write to the
\r
20 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
\r
24 <!-- Creates the class descriptor files for HTML documentation.
\r
27 <xsl:stylesheet version="1.0"
\r
28 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
\r
29 xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
\r
30 xmlns:html="http://www.w3.org/TR/REC-html40"
\r
31 xmlns="http://www.w3.org/TR/REC-html40">
\r
33 <xsl:include href="html_common.xsl"/>
\r
35 <xsl:output method="html"
\r
37 doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
\r
38 doctype-system="http://www.w3.org/TR/html4/loose.dtd"
\r
41 <xsl:strip-space elements="*"/>
\r
43 <xsl:template match="gjdoc:tag[attribute::kind='@see'][attribute::name='@link']">
\r
44 <xsl:call-template name="output_link_tag"/>
\r
47 <xsl:template mode="pre" match="*">
\r
49 <xsl:when test="'pre'=local-name(.)">
\r
50 <xsl:apply-templates mode="pre"/>
\r
53 <xsl:copy-of select="."/>
\r
58 <xsl:template mode="pre" match="text()[position()=last()]">
\r
59 <xsl:call-template name="strip_trailing_ws">
\r
60 <xsl:with-param name="p_content" select="."/>
\r
61 </xsl:call-template>
\r
64 <xsl:template name="strip_trailing_ws">
\r
65 <xsl:param name="p_content"/>
\r
67 <xsl:if test="normalize-space($p_content)!=''">
\r
69 <xsl:when test="normalize-space(substring($p_content, string-length($p_content), 1))=''">
\r
70 <xsl:call-template name="strip_trailing_ws">
\r
71 <xsl:with-param name="p_content">
\r
72 <xsl:value-of select="substring($p_content, 1, string-length($p_content)-1)"/>
\r
74 </xsl:call-template>
\r
77 <xsl:copy-of select="$p_content"/>
\r
83 <xsl:template match="*">
\r
84 <xsl:element name="{name()}">
\r
85 <xsl:for-each select="attribute::*">
\r
86 <xsl:attribute name="{name()}">
\r
87 <xsl:value-of select="."/>
\r
91 <xsl:when test="name()='pre'">
\r
92 <xsl:apply-templates select="." mode="pre"/>
\r
95 <xsl:apply-templates/>
\r
101 <xsl:template match="/">
\r
103 <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc">
\r
104 <xsl:call-template name="create_classdoc"/>
\r
109 <!-- For every classdoc node found in the source XML, create a corresponding -->
\r
110 <!-- class rootdoc HTML file. -->
\r
112 <xsl:template name="create_classdoc">
\r
114 <xsl:variable name="v_sub_xml_filename">
\r
115 <xsl:value-of select="concat(@qualifiedtypename,'.xml')"/>
\r
120 <xsl:call-template name="output_title">
\r
121 <xsl:with-param name="p_pagetitle" select="@name"/>
\r
122 </xsl:call-template>
\r
123 <xsl:call-template name="include_common"/>
\r
125 <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
\r
127 <div class="pagebody">
\r
129 <xsl:call-template name="classdoc_header"/>
\r
130 <xsl:call-template name="classdoc_all_field_summary">
\r
131 <xsl:with-param name="v_sub_xml_filename">
\r
132 <xsl:value-of select="$v_sub_xml_filename"/>
\r
134 </xsl:call-template>
\r
135 <xsl:call-template name="classdoc_all_constructor_summary">
\r
136 <xsl:with-param name="v_sub_xml_filename">
\r
137 <xsl:value-of select="$v_sub_xml_filename"/>
\r
139 </xsl:call-template>
\r
140 <xsl:call-template name="classdoc_all_method_summary">
\r
141 <xsl:with-param name="v_sub_xml_filename">
\r
142 <xsl:value-of select="$v_sub_xml_filename"/>
\r
144 </xsl:call-template>
\r
146 <xsl:if test="gjdoc:fielddoc">
\r
147 <h1 class="classdoc-header">Field Details</h1>
\r
149 <xsl:for-each select="gjdoc:fielddoc">
\r
150 <xsl:sort select="@name" order="ascending"/>
\r
151 <xsl:call-template name="classdoc_field_details"/>
\r
155 <xsl:if test="gjdoc:constructordoc">
\r
156 <h1 class="classdoc-header">Constructor Details</h1>
\r
158 <xsl:for-each select="gjdoc:constructordoc">
\r
159 <xsl:sort select="gjdoc:signature/@full" order="ascending"/>
\r
160 <xsl:call-template name="classdoc_method_details"/>
\r
164 <xsl:if test="gjdoc:methoddoc">
\r
165 <h1 class="classdoc-header">Method Details</h1>
\r
167 <xsl:for-each select="gjdoc:methoddoc">
\r
168 <xsl:sort select="@name" order="ascending"/>
\r
169 <xsl:sort select="gjdoc:signature/@full" order="ascending"/>
\r
170 <xsl:call-template name="classdoc_method_details"/>
\r
174 <!-- Bottom Navigation Bar -->
\r
175 <xsl:call-template name="output_navbar">
\r
176 <xsl:with-param name="p_show_frames" select="1"/>
\r
177 <xsl:with-param name="p_show_noframes" select="1"/>
\r
178 <xsl:with-param name="p_show_package" select="1"/>
\r
179 <xsl:with-param name="p_show_package_tree" select="1"/>
\r
180 <xsl:with-param name="p_show_full_tree" select="1"/>
\r
181 <xsl:with-param name="p_show_index" select="1"/>
\r
182 <xsl:with-param name="p_show_help" select="1"/>
\r
183 <xsl:with-param name="p_top" select="0"/>
\r
184 <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
\r
185 <xsl:with-param name="p_show_use" select="concat($gjdoc.pathtoroot, 'class-use/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
\r
186 <xsl:with-param name="p_curr_class" select="1"/>
\r
187 </xsl:call-template>
\r
194 <!-- Output header for Class documentation -->
\r
196 <xsl:template name="classdoc_header">
\r
198 <!-- Top Navigation Bar -->
\r
199 <xsl:call-template name="output_navbar">
\r
200 <xsl:with-param name="p_show_frames" select="1"/>
\r
201 <xsl:with-param name="p_show_noframes" select="1"/>
\r
202 <xsl:with-param name="p_show_package" select="1"/>
\r
203 <xsl:with-param name="p_show_package_tree" select="1"/>
\r
204 <xsl:with-param name="p_show_full_tree" select="1"/>
\r
205 <xsl:with-param name="p_show_index" select="1"/>
\r
206 <xsl:with-param name="p_show_help" select="1"/>
\r
207 <xsl:with-param name="p_top" select="1"/>
\r
208 <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
\r
209 <xsl:with-param name="p_show_use" select="concat($gjdoc.pathtoroot, 'class-use/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
\r
210 <xsl:with-param name="p_curr_class" select="1"/>
\r
211 </xsl:call-template>
\r
213 <div class="classdoc-head">
\r
215 <div class="classdoc-head-packagename classdoc-subtitle">
\r
216 <xsl:value-of select="gjdoc:containingPackage/@name"/>
\r
219 <h1 class="classdoc-head-classname classdoc-title">
\r
221 <xsl:when test="gjdoc:isInterface">
\r
222 <xsl:text>Interface </xsl:text>
\r
225 <xsl:text>Class </xsl:text>
\r
228 <xsl:value-of select="@name"/>
\r
233 <xsl:if test="gjdoc:isClass">
\r
234 <xsl:call-template name="classdoc_heritage_tree"/>
\r
237 <xsl:if test="gjdoc:containingClass">
\r
238 <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
\r
239 <b>Enclosing Class:</b><br/>
\r
240 <xsl:call-template name="link_to_class">
\r
241 <xsl:with-param name="p_name" select="gjdoc:containingClass/@typename"/>
\r
242 <xsl:with-param name="p_qualifiedname" select="gjdoc:containingClass/@qualifiedtypename"/>
\r
243 </xsl:call-template>
\r
246 <xsl:if test="gjdoc:implements">
\r
250 <xsl:when test="gjdoc:isInterface">
\r
251 <xsl:text>All Superinterfaces:</xsl:text>
\r
254 <xsl:text>All Implemented Interfaces:</xsl:text>
\r
259 <xsl:for-each select="gjdoc:implements|gjdoc:superimplements">
\r
260 <xsl:sort select="@qualifiedtypename" order="ascending"/>
\r
261 <xsl:call-template name="link_to_class">
\r
262 <xsl:with-param name="p_name" select="@typename"/>
\r
263 <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>
\r
264 </xsl:call-template>
\r
265 <xsl:if test="position() != last()">
\r
266 <xsl:text>, </xsl:text>
\r
272 <xsl:if test="gjdoc:isInterface">
\r
273 <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
\r
274 <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[child::gjdoc:isInterface]/gjdoc:implements[attribute::qualifiedtypename=$v_qualifiedtypename]"/>
\r
275 <xsl:if test="$v_implementors">
\r
276 <b>All Known Direct Subinterfaces:</b><br/>
\r
277 <xsl:for-each select="$v_implementors">
\r
278 <xsl:sort select="../@qualifiedtypename" order="ascending"/>
\r
279 <xsl:call-template name="link_to_class">
\r
280 <xsl:with-param name="p_name" select="../@name"/>
\r
281 <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>
\r
282 </xsl:call-template>
\r
283 <xsl:if test="position() != last()">
\r
284 <xsl:text>, </xsl:text>
\r
290 <xsl:if test="gjdoc:isInterface">
\r
291 <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
\r
292 <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[child::gjdoc:isClass]/gjdoc:implements[attribute::qualifiedtypename=$v_qualifiedtypename]"/>
\r
293 <xsl:if test="$v_implementors">
\r
294 <b>Known Implementing Classes:</b><br/>
\r
295 <xsl:for-each select="$v_implementors">
\r
296 <xsl:sort select="../@qualifiedtypename" order="ascending"/>
\r
297 <xsl:call-template name="link_to_class">
\r
298 <xsl:with-param name="p_name" select="../@name"/>
\r
299 <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>
\r
300 </xsl:call-template>
\r
301 <xsl:if test="position() != last()">
\r
302 <xsl:text>, </xsl:text>
\r
308 <xsl:if test="gjdoc:isClass">
\r
309 <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
\r
310 <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[not(child::gjdoc:isInterface)]/gjdoc:superclass[attribute::qualifiedtypename=$v_qualifiedtypename]"/>
\r
311 <xsl:if test="$v_implementors">
\r
312 <b>Known Direct Subclasses:</b><br/>
\r
313 <xsl:for-each select="$v_implementors">
\r
314 <xsl:sort select="../@qualifiedtypename" order="ascending"/>
\r
315 <xsl:call-template name="link_to_class">
\r
316 <xsl:with-param name="p_name" select="../@name"/>
\r
317 <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>
\r
318 </xsl:call-template>
\r
319 <xsl:if test="position() != last()">
\r
320 <xsl:text>, </xsl:text>
\r
328 <div class="classdoc-prototype">
\r
330 <!-- 'public final class Byte' -->
\r
332 <xsl:value-of select="gjdoc:access/@scope"/><xsl:text> </xsl:text>
\r
333 <xsl:if test="gjdoc:isStatic"><xsl:text>static </xsl:text></xsl:if>
\r
334 <xsl:if test="gjdoc:isFinal"><xsl:text>final </xsl:text></xsl:if>
\r
336 <xsl:when test="gjdoc:isInterface">
\r
337 <xsl:text>interface </xsl:text>
\r
340 <xsl:if test="gjdoc:isAbstract"><xsl:text>abstract </xsl:text></xsl:if>
\r
341 <xsl:text>class </xsl:text>
\r
345 <xsl:call-template name="link_to_class_source"/><br/>
\r
347 <!-- 'extends Number' -->
\r
349 <xsl:if test="gjdoc:isClass and @qualifiedtypename!='java.lang.Object'">
\r
350 <xsl:text>extends </xsl:text>
\r
351 <xsl:call-template name="link_to_class">
\r
352 <xsl:with-param name="p_qualifiedname">
\r
353 <xsl:value-of select="gjdoc:superclass/@qualifiedtypename"/>
\r
355 <xsl:with-param name="p_name">
\r
356 <xsl:value-of select="gjdoc:superclass/@typename"/>
\r
358 </xsl:call-template>
\r
362 <!-- 'implements Comparable' -->
\r
364 <xsl:if test="gjdoc:implements">
\r
365 <xsl:text>implements </xsl:text>
\r
367 <xsl:for-each select="gjdoc:implements">
\r
368 <xsl:call-template name="link_to_class">
\r
369 <xsl:with-param name="p_qualifiedname">
\r
370 <xsl:value-of select="@qualifiedtypename"/>
\r
372 <xsl:with-param name="p_name">
\r
373 <xsl:value-of select="@typename"/>
\r
375 </xsl:call-template>
\r
376 <xsl:if test="position() != last()">
\r
377 <xsl:text>, </xsl:text>
\r
383 <!-- Documentation -->
\r
387 <xsl:if test="gjdoc:inlineTags">
\r
388 <div class="classdoc-class-comment-body">
\r
389 <xsl:for-each select="gjdoc:inlineTags/node()">
\r
390 <xsl:apply-templates select="."/>
\r
395 <xsl:call-template name="output_see_tags"/>
\r
396 <xsl:call-template name="output_taglet_tags"/>
\r
400 <xsl:template name="output_taglet_tags">
\r
402 <xsl:for-each select="gjdoc:tags/gjdoc:tag">
\r
404 <xsl:when test="@name='@deprecated'">
\r
405 <div class="classdoc-tag-section-header">
\r
406 <xsl:value-of select="'Deprecated:'"/>
\r
408 <dl class="classdoc-list">
\r
409 <xsl:for-each select="gjdoc:inlineTags">
\r
410 <xsl:apply-templates/>
\r
414 <xsl:when test="@taglet-generated">
\r
415 <xsl:copy-of select="./*"/>
\r
422 <!-- Output summary of all fields in this class -->
\r
424 <xsl:template name="classdoc_all_field_summary">
\r
426 <xsl:if test=".//gjdoc:fielddoc">
\r
428 <table border="1" cellspacing="0" class="classdoc-table">
\r
429 <tr><td class="section-header" colspan="2"><div class="section-header">Field Summary</div></td></tr>
\r
430 <xsl:for-each select="gjdoc:fielddoc">
\r
431 <xsl:sort select="@name" order="ascending"/>
\r
432 <xsl:call-template name="classdoc_field_summary_tr"/>
\r
436 <xsl:for-each select="gjdoc:superclass">
\r
437 <xsl:call-template name="output_superclass_fields"/>
\r
443 <!-- Output summary of all methods in this class -->
\r
445 <xsl:template name="classdoc_all_method_summary">
\r
447 <xsl:if test=".//gjdoc:methoddoc">
\r
448 <table border="1" cellspacing="0" class="classdoc-table">
\r
449 <tr><td class="section-header" colspan="2"><div class="section-header">Method Summary</div></td></tr>
\r
450 <xsl:for-each select="gjdoc:methoddoc">
\r
451 <xsl:sort select="@name" order="ascending"/>
\r
452 <xsl:call-template name="classdoc_method_summary_tr"/>
\r
456 <xsl:for-each select="gjdoc:superclass">
\r
457 <xsl:call-template name="output_superclass_methods"/>
\r
463 <!-- Output summary of all constructors in this class -->
\r
465 <xsl:template name="classdoc_all_constructor_summary">
\r
467 <xsl:if test=".//gjdoc:constructordoc">
\r
469 <h1 class="classdoc-header">Constructor Summary</h1>
\r
472 <table class="classdoc-table">
\r
473 <tr><td class="section-header" colspan="2"><div class="section-header">Constructor Summary</div></td></tr>
\r
474 <xsl:for-each select="gjdoc:constructordoc">
\r
475 <xsl:sort select="@name" order="ascending"/>
\r
476 <xsl:call-template name="classdoc_method_summary_tr"/>
\r
483 <!-- Output summary of a single field -->
\r
485 <xsl:template name="classdoc_field_summary_tr">
\r
489 <!-- Left table cell: Modifiers and Return Type -->
\r
491 <td valign="top" class="member-summary field modifiers">
\r
492 <code class="member-summary field modifiers">
\r
493 <xsl:call-template name="output_modifiers_summary"/>
\r
494 <xsl:call-template name="link_to_class">
\r
495 <xsl:with-param name="p_name">
\r
496 <xsl:value-of select="gjdoc:type/@typename"/>
\r
498 <xsl:with-param name="p_qualifiedname">
\r
499 <xsl:value-of select="gjdoc:type/@qualifiedtypename"/>
\r
501 </xsl:call-template>
\r
502 <xsl:value-of select="gjdoc:type/@dimension"/>
\r
506 <!-- Right table cell: name and short description -->
\r
508 <td class="member-summary field name">
\r
509 <!-- Method signature -->
\r
511 <!-- Link to field definition -->
\r
513 <code class="member-summary field name">
\r
514 <a href="{concat('#',@name)}" class="field name"><xsl:value-of select="@name"/></a>
\r
517 <!-- Brief description of field -->
\r
519 <blockquote class="member-summary field comment">
\r
520 <xsl:for-each select="gjdoc:firstSentenceTags/node()">
\r
521 <xsl:value-of select="." disable-output-escaping="yes"/>
\r
530 <xsl:template name="output_modifiers">
\r
531 <xsl:if test="gjdoc:isNative">
\r
532 <xsl:text>native </xsl:text>
\r
534 <xsl:if test="gjdoc:isStatic">
\r
535 <xsl:text>static </xsl:text>
\r
537 <xsl:if test="gjdoc:isFinal">
\r
538 <xsl:text>final </xsl:text>
\r
540 <xsl:if test="gjdoc:isAbstract">
\r
541 <xsl:text>abstract </xsl:text>
\r
543 <xsl:if test="gjdoc:isTransient">
\r
544 <xsl:text>transient </xsl:text>
\r
546 <xsl:if test="gjdoc:isVolatile">
\r
547 <xsl:text>volatile </xsl:text>
\r
549 <xsl:if test="gjdoc:isSynchronized">
\r
550 <xsl:text>synchronized </xsl:text>
\r
554 <xsl:template name="output_modifiers_summary">
\r
555 <xsl:if test="gjdoc:isStatic">
\r
556 <xsl:text>static </xsl:text>
\r
558 <xsl:if test="gjdoc:isAbstract">
\r
559 <xsl:text>abstract </xsl:text>
\r
561 <xsl:if test="gjdoc:isTransient">
\r
562 <xsl:text>transient </xsl:text>
\r
564 <xsl:if test="gjdoc:isVolatile">
\r
565 <xsl:text>volatile </xsl:text>
\r
567 <xsl:if test="gjdoc:isSynchronized">
\r
568 <xsl:text>synchronized </xsl:text>
\r
572 <!-- Output summary of a single method or constructor -->
\r
574 <xsl:template name="classdoc_method_summary_tr">
\r
578 <!-- Left table cell: Modifiers and Return Type -->
\r
580 <xsl:if test="gjdoc:isMethod">
\r
581 <td valign="top" class="member-summary method modifiers">
\r
582 <code class="member-summary method modifiers">
\r
583 <xsl:call-template name="output_modifiers_summary"/>
\r
584 <xsl:text> </xsl:text>
\r
585 <xsl:call-template name="link_to_class">
\r
586 <xsl:with-param name="p_qualifiedname" select="gjdoc:returns/@qualifiedtypename"/>
\r
587 <xsl:with-param name="p_name" select="gjdoc:returns/@typename"/>
\r
588 </xsl:call-template>
\r
589 <xsl:value-of select="gjdoc:returns/@dimension"/>
\r
594 <!-- Right table cell: signature and short description -->
\r
596 <td align="left" valign="top" class="member-summary method name">
\r
598 <!-- Method signature -->
\r
600 <code class="member-summary method signature">
\r
602 <!-- Link to method definition -->
\r
604 <a href="{concat('#',@name,gjdoc:signature/@full)}" class="member-summary method name"><xsl:value-of select="@name"/></a>
\r
606 <!-- Parameter List -->
\r
608 <xsl:text>(</xsl:text>
\r
609 <xsl:call-template name="list_parameters"/>
\r
610 <xsl:text>)</xsl:text>
\r
613 <!-- Brief description of Method -->
\r
615 <blockquote class="member-summary method comment">
\r
617 <xsl:when test="gjdoc:tags/gjdoc:tag[@kind='@deprecated']">
\r
619 <b>Deprecated. </b>
\r
620 <xsl:for-each select="gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags">
\r
621 <xsl:apply-templates/>
\r
626 <xsl:for-each select="gjdoc:firstSentenceTags/node()">
\r
627 <xsl:value-of disable-output-escaping="yes" select="."/>
\r
637 <!-- Output a list of all parameters of the current methoddoc -->
\r
638 <xsl:template name="list_parameters">
\r
639 <xsl:for-each select="gjdoc:parameter">
\r
640 <span class="parameter">
\r
641 <xsl:call-template name="link_to_class">
\r
642 <xsl:with-param name="p_qualifiedname">
\r
643 <xsl:value-of select="@qualifiedtypename"/>
\r
645 <xsl:with-param name="p_name">
\r
646 <xsl:value-of select="@typename"/>
\r
648 </xsl:call-template>
\r
649 <xsl:value-of select="@dimension"/>
\r
650 <xsl:text disable-output-escaping="no"> </xsl:text>
\r
651 <xsl:value-of select="@name"/>
\r
652 <xsl:if test="position() != last()">
\r
653 <xsl:text>,</xsl:text>
\r
656 <xsl:if test="position() != last()">
\r
657 <xsl:text> </xsl:text>
\r
662 <xsl:template name="list_parameter_details">
\r
663 <dl class="classdoc-list">
\r
664 <xsl:for-each select="gjdoc:parameter">
\r
666 <span class="prototype-name">
\r
667 <xsl:value-of select="@name"/>
\r
669 <xsl:variable name="param_position" select="position()"/>
\r
671 <xsl:if test="../gjdoc:tags/gjdoc:tag[attribute::kind='@param' and position()=$param_position]">
\r
672 <xsl:text> - </xsl:text>
\r
673 <xsl:for-each select="../gjdoc:tags/gjdoc:tag[attribute::kind='@param' and position()=$param_position]/gjdoc:inlineTags/node()">
\r
674 <xsl:copy-of select="."/>
\r
682 <xsl:template name="output_see_tags">
\r
683 <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@see']">
\r
684 <div class="classdoc-tag-section-header"><b>See Also:</b></div>
\r
686 <dl class="classdoc-list">
\r
687 <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@see']">
\r
689 <xsl:variable name="v_see" select="normalize-space(.)"/>
\r
693 <xsl:call-template name="output_link_tag"/>
\r
701 <!-- Output details of all fields in this class -->
\r
703 <xsl:template name="classdoc_field_details">
\r
705 <a name="{@name}" class="classdoc"> </a>
\r
706 <div class="before-details"> </div>
\r
708 <h3><xsl:value-of select="@name"/></h3>
\r
710 <p class="prototype"><code>
\r
711 <xsl:value-of select="gjdoc:access/@scope"/>
\r
712 <xsl:text> </xsl:text>
\r
713 <xsl:call-template name="output_modifiers"/>
\r
714 <xsl:value-of select="gjdoc:type/@typename"/>
\r
715 <xsl:value-of select="gjdoc:type/@dimension"/>
\r
716 <xsl:text> </xsl:text>
\r
717 <xsl:call-template name="link_to_member_source"/>
\r
722 <!-- Full comment text -->
\r
724 <xsl:if test="gjdoc:inlineTags">
\r
725 <div class="classdoc-comment-body">
\r
726 <xsl:for-each select="gjdoc:inlineTags/node()">
\r
727 <xsl:apply-templates select="."/>
\r
734 <xsl:call-template name="output_taglet_tags"/>
\r
738 <xsl:call-template name="output_see_tags"/>
\r
740 <xsl:if test="position()!=last()">
\r
747 <!-- Output details of all methods in this class -->
\r
749 <xsl:template name="classdoc_method_details">
\r
751 <a name="{concat(@name,gjdoc:signature/@full)}" class="classdoc"> </a>
\r
752 <div class="before-details"> </div>
\r
754 <h3><xsl:value-of select="@name"/></h3>
\r
756 <p class="prototype"><code>
\r
757 <xsl:value-of select="gjdoc:access/@scope"/>
\r
758 <xsl:text> </xsl:text>
\r
759 <xsl:call-template name="output_modifiers"/>
\r
760 <xsl:value-of select="gjdoc:returns/@typename"/><xsl:value-of select="gjdoc:returns/@dimension"/>
\r
761 <xsl:text> </xsl:text>
\r
762 <xsl:call-template name="link_to_member_source"/>
\r
763 <xsl:text>(</xsl:text>
\r
764 <xsl:call-template name="list_parameters"/>
\r
765 <xsl:text>)</xsl:text>
\r
768 <!-- Full comment text -->
\r
770 <xsl:if test="gjdoc:inlineTags">
\r
771 <div class="classdoc-comment-body">
\r
772 <xsl:for-each select="gjdoc:inlineTags/node()">
\r
773 <xsl:apply-templates select="."/>
\r
780 <xsl:call-template name="output_taglet_tags"/>
\r
782 <xsl:if test="gjdoc:parameter">
\r
783 <div class="classdoc-tag-section-header"><b>Parameters:</b></div>
\r
784 <xsl:call-template name="list_parameter_details"/>
\r
787 <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@return']">
\r
788 <div class="classdoc-tag-section-header"><b>Returns:</b></div>
\r
789 <dl class="classdoc-list">
\r
791 <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@return']">
\r
792 <xsl:value-of select="." disable-output-escaping="yes"/>
\r
798 <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@throws']">
\r
799 <div class="classdoc-tag-section-header"><b>Throws:</b></div>
\r
800 <dl class="classdoc-list">
\r
801 <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@throws']">
\r
804 <xsl:call-template name="link_to_class">
\r
805 <xsl:with-param name="p_qualifiedname">
\r
806 <xsl:value-of select="gjdoc:exception/@qualifiedtypename"/>
\r
808 <xsl:with-param name="p_name">
\r
809 <xsl:value-of select="gjdoc:exception/@typename"/>
\r
811 </xsl:call-template>
\r
813 <xsl:text> - </xsl:text>
\r
814 <xsl:for-each select="gjdoc:inlineTags/node()">
\r
815 <xsl:copy-of select="."/>
\r
822 <xsl:call-template name="output_see_tags"/>
\r
824 <xsl:if test="position()!=last()">
\r
830 <!-- Recursively create the tree showing the heritage of the -->
\r
831 <!-- given class -->
\r
833 <xsl:template name="create_tree">
\r
834 <xsl:param name="p_superclass"/>
\r
835 <xsl:param name="p_indent"/>
\r
836 <xsl:param name="p_final" select="0"/>
\r
838 <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]">
\r
840 <xsl:if test="gjdoc:superclass">
\r
841 <xsl:call-template name="create_tree">
\r
842 <xsl:with-param name="p_indent" select="$p_indent+-1"/>
\r
843 <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>
\r
844 </xsl:call-template>
\r
846 <xsl:call-template name="tree_indentation_text_empty">
\r
847 <xsl:with-param name="p_indent" select="$p_indent"/>
\r
848 </xsl:call-template>
\r
854 <xsl:if test="$p_indent>0">
\r
855 <xsl:call-template name="tree_indentation">
\r
856 <xsl:with-param name="p_indent" select="$p_indent"/>
\r
857 </xsl:call-template>
\r
861 <xsl:when test="$p_final=1">
\r
862 <xsl:value-of select="$p_superclass"/>
\r
865 <xsl:call-template name="link_to_class_full">
\r
866 <xsl:with-param name="p_qualifiedname">
\r
867 <xsl:value-of select="$p_superclass"/>
\r
869 </xsl:call-template>
\r
876 <!-- Recursively create the tree showing the heritage of the -->
\r
877 <!-- given class, use bitmaps -->
\r
879 <xsl:template name="create_tree_gfx">
\r
880 <xsl:param name="p_superclass"/>
\r
881 <xsl:param name="p_indent"/>
\r
882 <xsl:param name="p_final" select="0"/>
\r
883 <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]/gjdoc:superclass">
\r
884 <xsl:call-template name="create_tree">
\r
885 <xsl:with-param name="p_indent" select="$p_indent+-1"/>
\r
886 <xsl:with-param name="p_superclass" select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]/gjdoc:superclass/@qualifiedtypename"/>
\r
887 </xsl:call-template>
\r
890 <table cellspacing="0" cellpadding="0" border="0">
\r
892 <xsl:variable name="imagename">
\r
894 <xsl:when test="$p_final=1">
\r
895 <xsl:text>images/tree-final-node.png</xsl:text>
\r
898 <xsl:text>images/tree-node.png</xsl:text>
\r
904 <xsl:if test="$p_indent>0">
\r
905 <xsl:call-template name="tree_indentation">
\r
906 <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent"/></xsl:with-param>
\r
907 </xsl:call-template>
\r
909 <img width="10" height="21" class="classdoc-tree-image" src="{$imagename}"/>
\r
913 <xsl:when test="$p_final=1">
\r
914 <td class="classdoc-tree-label"><xsl:value-of select="$p_superclass"/></td>
\r
917 <td class="classdoc-tree-label">
\r
918 <xsl:call-template name="link_to_class_full">
\r
919 <xsl:with-param name="p_qualifiedname">
\r
920 <xsl:value-of select="$p_superclass"/>
\r
922 </xsl:call-template>
\r
930 <!-- Recursively output one character for each superclass found for the given -->
\r
931 <!-- class. The length of the resulting string tells how many levels of -->
\r
932 <!-- indentation are required for creating the heritage tree. -->
\r
934 <xsl:template name="output_base_markers">
\r
935 <xsl:param name="p_superclass"/>
\r
937 <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]">
\r
938 <xsl:if test="gjdoc:superclass">
\r
939 <xsl:call-template name="output_base_markers">
\r
940 <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>
\r
941 </xsl:call-template>
\r
945 <xsl:text>*</xsl:text>
\r
948 <!-- Heritage Tree -->
\r
950 <xsl:template name="classdoc_heritage_tree">
\r
952 <xsl:variable name="p_qualifiedtypename" select="@qualifiedtypename"/>
\r
954 <xsl:for-each select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[@qualifiedtypename=$p_qualifiedtypename]">
\r
956 <xsl:variable name="superclass_markers">
\r
957 <xsl:call-template name="output_base_markers">
\r
958 <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>
\r
959 </xsl:call-template>
\r
963 <xsl:when test="$gjdoc.allowimages=1">
\r
964 <table border="0" cellpadding="0" cellspacing="0" style="margin:0px; padding:0px; line-height:1px">
\r
965 <xsl:call-template name="create_tree_gfx">
\r
966 <xsl:with-param name="p_indent" select="string-length($superclass_markers)"/>
\r
967 <xsl:with-param name="p_superclass" select="$p_qualifiedtypename"/>
\r
968 <xsl:with-param name="p_final" select="1"/>
\r
969 </xsl:call-template>
\r
973 <pre class="inheritance-tree">
\r
974 <xsl:call-template name="create_tree">
\r
975 <xsl:with-param name="p_indent" select="string-length($superclass_markers)"/>
\r
976 <xsl:with-param name="p_superclass" select="$p_qualifiedtypename"/>
\r
977 <xsl:with-param name="p_final" select="1"/>
\r
978 </xsl:call-template>
\r
985 <xsl:template name="tree_indentation_text_empty">
\r
986 <xsl:param name="p_indent"/>
\r
988 <xsl:when test="$p_indent>1">
\r
989 <xsl:text> </xsl:text>
\r
990 <xsl:call-template name="tree_indentation_text_empty">
\r
991 <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent+-1"/></xsl:with-param>
\r
992 </xsl:call-template>
\r
997 <!-- Recursively insert indentation for heritage tree. -->
\r
998 <!-- This one uses images for nice, visual indentation. -->
\r
999 <!-- p_indent selects level of indentation. -->
\r
1001 <xsl:template name="tree_indentation">
\r
1002 <xsl:param name="p_indent"/>
\r
1004 <xsl:when test="$p_indent>1">
\r
1006 <xsl:when test="$gjdoc.allowimages=1">
\r
1007 <img width="26" height="21" border="0" src="images/tree-empty.png" class="classdoc-tree-image"/>
\r
1010 <xsl:text> </xsl:text>
\r
1014 <xsl:call-template name="tree_indentation">
\r
1015 <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent+-1"/></xsl:with-param>
\r
1016 </xsl:call-template>
\r
1020 <xsl:when test="$gjdoc.allowimages=1">
\r
1021 <img width="26" height="21" border="0" src="images/tree-branch.png" class="classdoc-tree-image"/>
\r
1024 <xsl:text>+--</xsl:text>
\r
1031 <xsl:template name="output_superclass_methods">
\r
1032 <xsl:if test="gjdoc:methoddoc">
\r
1033 <table class="classdoc-table">
\r
1035 <td class="sub-section-header">
\r
1036 <div class="sub-section-header">Methods inherited from class <xsl:value-of select="@qualifiedtypename"/></div>
\r
1040 <td class="member-summary super method">
\r
1041 <xsl:for-each select="gjdoc:methoddoc">
\r
1042 <code class="member-summary super method"><a href="{concat($gjdoc.pathtoroot, translate(../gjdoc:containingPackage/@name, '.', '/'), '/', ../@typename, '.html#', @name, gjdoc:signature/@full)}" class="member-summary super method"><xsl:value-of select="@name"/></a><xsl:if test="position() != last()">, </xsl:if></code>
\r
1051 <xsl:template name="output_superclass_fields">
\r
1052 <xsl:if test="gjdoc:fielddoc">
\r
1053 <table class="classdoc-table">
\r
1055 <td class="sub-section-header">
\r
1056 <div class="sub-section-header">Fields inherited from class <xsl:value-of select="@qualifiedtypename"/></div>
\r
1060 <td class="member-summary super field">
\r
1061 <xsl:for-each select="gjdoc:fielddoc">
\r
1062 <code class="member-summary super field"><a href="{concat($gjdoc.pathtoroot, translate(../gjdoc:containingPackage/@name, '.', '/'), '/', ../@typename, '.html#', @name)}" class="member-summary super field"><xsl:value-of select="@name"/></a><xsl:if test="position() != last()">, </xsl:if></code>
\r