Author: ben
Date: 2007-11-02 18:22:55 -0700 (Fri, 02 Nov 2007)
New Revision: 7109

Modified:
   openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl
Log:
Real progress towards analyzing attribute category (final, readonly, 
read/write, special)

Modified: openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl
===================================================================
--- openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl 2007-11-03 
00:36:32 UTC (rev 7108)
+++ openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl 2007-11-03 
01:22:55 UTC (rev 7109)
@@ -21,35 +21,94 @@
 
 <!ENTITY isvisible      '(contains($visibility.filter, @access))'>
 
+<!ENTITY ispublic       '(@access="public")'>
 
+
+
 ]>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
-    <xsl:import  href="common-html.xsl"/>
-    
     <xsl:output method="xml"/>
     <!-- simple driver for testing paperpie doctools work -->
     
+    <xsl:template match="/">
+        <xsl:apply-templates select="/js2doc/property" />
+    </xsl:template>
     
-    <xsl:param name="visibility.filter" select="'public'"/>    
+    
+    
+    <!-- /js2doc/[EMAIL PROTECTED]/class/[EMAIL PROTECTED]"setters"] --> 
+    <xsl:template match="property" >
+        <xsl:variable name="classname" select="@name" />
+        <xsl:variable name="setters" select="class/[EMAIL 
PROTECTED]'setters']/object/property[not(contains(@access, 'private'))]" />
+        <xsl:variable name="instancevariables" select="class/[EMAIL 
PROTECTED]'__ivars__']/object/property[not(contains(@access, 'private'))]" />
+        <xsl:variable name="initargs" 
select="class/initarg[not(contains(@access, 'private'))]" />
+        
+        
+        property with name <xsl:value-of select="$classname"/>
+        
+            
+        <!-- things that are both instancevariables and setters are read/write 
attributes -->
+        <xsl:variable name="setters-names" select="$setters/@name" />
+        <xsl:variable name="ivars-names" select="$instancevariables/@name" />
+        
+        <xsl:variable name="attributes" select="$setters | 
$instancevariables"></xsl:variable>
+        
 
-    <xsl:key name="id" match="*" use="@id"/>
-    <xsl:key name="unitid" match="*" use="@unitid"/>
-    <xsl:key name="topic" match="property" use="@topic"/>
-    <xsl:key name="subtopic" match="property" use="@subtopic"/>
-    <xsl:key name="name-js" match="property" use="@name"/>
-    <xsl:key name="name-lzx" match="property" use="&tagname;"/>
-    <xsl:key name="superclass" match="property[child::class]" 
use="class/@extends"/>    
+        attributes: (setters: <xsl:value-of select="count($setters)"/>) 
(instancevariables: <xsl:value-of select="count($instancevariables)"/>)
+        <xsl:for-each select="$attributes">
+            <xsl:sort select="@name" />
+            <xsl:variable name="sname" select="@name" />
+            <xsl:variable name="issetter" select="count( ancestor::[EMAIL 
PROTECTED]'setters'] ) > 0" />           
+            <xsl:variable name="hassetter" select="count( [EMAIL PROTECTED] ) 
> 0" />
+            <xsl:variable name="isinstancevar" select="count( [EMAIL 
PROTECTED]) > 0" />
+            <xsl:variable name="isinitarg" select="count( [EMAIL PROTECTED] ) 
> 0" />         
+            
+            <xsl:if test="$hassetter">
+                <xsl:if test="$issetter">
+                    <xsl:call-template name="unique-attribute">
+                        <xsl:with-param name="issetter" 
select="true()"></xsl:with-param>
+                        <xsl:with-param name="isinstancevar" 
select="$isinstancevar"></xsl:with-param>
+                        <xsl:with-param name="isinitarg" 
select="$isinitarg"></xsl:with-param>                        
+                    </xsl:call-template>
+                </xsl:if>                
+            </xsl:if>
+            <xsl:if test="not($hassetter)">
+                <xsl:call-template name="unique-attribute"></xsl:call-template>
+            </xsl:if>
+        </xsl:for-each>
+        
+        
+        instancevariables: 
+        <xsl:for-each select="$instancevariables">
+            <xsl:sort select="@name" />            
+            <xsl:value-of select="@name"/>,             
+        </xsl:for-each>            
 
-    <xsl:template match="/">
-        <h3> 
-            <xsl:attribute name="class">goofy</xsl:attribute> 
-                hi there</h3>
-        <xsl:for-each select="descendant::refsect1[1]">
-            $relative.path.to.lpshome: <xsl:value-of 
select="$relative.path.to.lpshome"/>
-            local.lps.path:<xsl:call-template name="local.lps.path" />
-            base.book.name:<xsl:call-template name="base.book.name" />
-            dbhtml-dir <xsl:call-template 
name="dbhtml-dir"></xsl:call-template>
-        </xsl:for-each>            
+        initargs: 
+        <xsl:for-each select="$initargs">
+            <xsl:sort select="@name" />            
+            <xsl:value-of select="@name"/>,             
+        </xsl:for-each>         
     </xsl:template>
+
+
+    <xsl:template name="unique-attribute">
+        <xsl:param name="issetter" select="false()"></xsl:param>
+        <xsl:param name="isinstancevar" select="true()"></xsl:param>
+        <xsl:param name="isinitarg" select="false()"></xsl:param>        
+        <xsl:value-of select="@name"/>            
         
+        <xsl:if test="$isinstancevar and $issetter"> (read/write)</xsl:if>
+        <xsl:if test="$isinstancevar and not($issetter)"> (readonly)</xsl:if>
+        <xsl:if test="not($isinstancevar) and $issetter"> (virtual) </xsl:if>
+        <xsl:if test="not($isinstancevar) and not($issetter)"> 
(strange)</xsl:if>
+        <xsl:if test="@modifiers='final'"> (final)</xsl:if>
+        <!-- 
+        <xsl:if test="$isinstancevar"> (instancevariable) </xsl:if>        
+        <xsl:if test="not($isinstancevar)"> (virtual) </xsl:if>
+        -->
+        <xsl:if test="$isinitarg"> (initarg)</xsl:if>,                         
       
+    </xsl:template>
+    
+
 </xsl:stylesheet>


_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins

Reply via email to