You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ha...@apache.org on 2003/04/17 22:08:49 UTC
cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/java logicsheet-util.xsl
haul 2003/04/17 13:08:49
Modified: src/java/org/apache/cocoon/components/language/markup/xsp/java
logicsheet-util.xsl
Log:
add new named template for nested parameter
attribute -> String,
:param -> as is,
absent -> null
Revision Changes Path
1.2 +51 -2 cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/java/logicsheet-util.xsl
Index: logicsheet-util.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/java/logicsheet-util.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- logicsheet-util.xsl 9 Mar 2003 00:08:57 -0000 1.1
+++ logicsheet-util.xsl 17 Apr 2003 20:08:48 -0000 1.2
@@ -63,6 +63,7 @@
* be set in the including logicsheet to its namespace URI.
*
* @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
+ * @author <a href="mailto:haul@apache.org">Christian Haul</a>
* @version CVS $Revision$ $Date$
-->
@@ -274,6 +275,54 @@
<xsl:apply-templates select="$content/*"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select="$content"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!--
+ Get a primitive object when :param is used, for @ a String is returned. Default is also String.
+ Without default, primitive value 'null' is returned
+ @name the name of the parameter
+ @default the default value
+ @required true if the parameter is required
+-->
+ <xsl:template name="get-ls-parameter">
+ <xsl:param name="name"/>
+ <xsl:param name="default"/>
+ <xsl:param name="required">false</xsl:param>
+
+ <!-- for some unknown reason this needs to be called every time,
+ otherwise only the first invocation uses a correct namespace
+ prefix. -->
+ <xsl:variable name="namespace-prefix"><xsl:call-template name="get-namespace-prefix"/></xsl:variable>
+
+ <xsl:variable name="qname">
+ <xsl:value-of select="concat($namespace-prefix, ':param')"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@*[name(.) = $name]">"<xsl:value-of select="@*[name(.) = $name]"/>"</xsl:when>
+ <xsl:when test="(*[name(.) = $qname])[@name = $name]">
+ <xsl:call-template name="get-nested-content">
+ <xsl:with-param name="content" select="(*[name(.) = $qname])[@name = $name]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="string-length($default) = 0">
+ <xsl:choose>
+ <xsl:when test="$required = 'true'">
+ <xsl:call-template name="error">
+ <xsl:with-param name="message">[Logicsheet processor]
+Parameter '<xsl:value-of select="$name"/>' missing in dynamic tag <<xsl:value-of select="name(.)"/>>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>null</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>"<xsl:copy-of select="$default"/>"</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
</xsl:choose>
</xsl:template>