vgritsenko 02/01/13 19:07:52 Modified: src/java/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl Log: Some more fixes (substitution, formatting) Revision Changes Path 1.3 +45 -23 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl Index: sitemap.xsl =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- sitemap.xsl 14 Jan 2002 02:58:34 -0000 1.2 +++ sitemap.xsl 14 Jan 2002 03:07:52 -0000 1.3 @@ -214,7 +214,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> * @author <a href="mailto:[EMAIL PROTECTED]">Nicola Ken Barozzi</a> * @author <a href="mailto:[EMAIL PROTECTED]">Peter Royal</a> - * @version CVS $Id: sitemap.xsl,v 1.2 2002/01/14 02:58:34 vgritsenko Exp $ + * @version CVS $Id: sitemap.xsl,v 1.3 2002/01/14 03:07:52 vgritsenko Exp $ */ public class <xsl:value-of select="@file-name"/> extends AbstractSitemap { static final String LOCATION = "<xsl:value-of select="translate(@file-path, '/', '.')"/>.<xsl:value-of select="@file-name"/>"; @@ -242,28 +242,28 @@ * Method that handles selectors. */ private boolean isSelected(String hint, String testValue, Parameters params, Map objectModel) throws Exception { - Selector selector = (Selector)this.selectors.select(hint); - try { - return selector.select(testValue, objectModel, params); - } finally { - this.selectors.release(selector); - } + Selector selector = (Selector)this.selectors.select(hint); + try { + return selector.select(testValue, objectModel, params); + } finally { + this.selectors.release(selector); + } } /** * Method that handles matchers. */ private Map matches(String hint, Object preparedPattern, String pattern, Parameters params, Map objectModel) throws Exception { - Component matcher = (Component)this.matchers.select(hint); - try { - if (preparedPattern == null) { - return ((Matcher)matcher).match(pattern, objectModel, params); - } else { - return ((PreparableMatcher)matcher).preparedMatch(preparedPattern, objectModel, params); - } - } finally { - this.matchers.release(matcher); + Component matcher = (Component)this.matchers.select(hint); + try { + if (preparedPattern == null) { + return ((Matcher)matcher).match(pattern, objectModel, params); + } else { + return ((PreparableMatcher)matcher).preparedMatch(preparedPattern, objectModel, params); } + } finally { + this.matchers.release(matcher); + } } @@ -277,8 +277,8 @@ this.sitemapManager.compose(this.manager); this.sitemapManager.configure(conf); - <!-- generate a HashMap relating labels to view names --> <xsl:for-each select="/map:sitemap/map:views/map:view"> + <!-- generate a HashMap relating labels to view names --> <xsl:variable name="view-label-name"> <xsl:choose> <xsl:when test="(@from-label)"> @@ -295,7 +295,8 @@ </xsl:choose> </xsl:variable> <xsl:if test="@from-label"> - view_label_map.put("<xsl:value-of select="$view-label-name"/>", "<xsl:value-of select="@name"/>"); + <xsl:text>view_label_map.put("</xsl:text><xsl:value-of select="$view-label-name"/> + <xsl:text>", "</xsl:text><xsl:value-of select="@name"/>"); </xsl:if> </xsl:for-each> @@ -1374,9 +1375,25 @@ </xsl:with-param> </xsl:call-template> </xsl:if> - <xsl:value-of select="$ca"/>.setRootElement("<xsl:value-of select="@element"/>", "<xsl:value-of select="@ns"/>", "<xsl:value-of select="@prefix"/>"); + + <xsl:variable name="ns"> + <xsl:call-template name="get-parameter-substituted"> + <xsl:with-param name="parname">ns</xsl:with-param> + <xsl:with-param name="default">""</xsl:with-param> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="prefix"> + <xsl:call-template name="get-parameter-substituted"> + <xsl:with-param name="parname">prefix</xsl:with-param> + <xsl:with-param name="default">""</xsl:with-param> + </xsl:call-template> + </xsl:variable> + + <xsl:value-of select="$ca"/>.setRootElement(<xsl:apply-templates select="@element"/>, + <xsl:value-of select="$ns"/>, <xsl:value-of select="$prefix"/>); <!-- check if a view was requested which matches one attached to a part element --> + <xsl:if test="map:part[@label]"> { boolean hasMatchingViewRequest = false; <xsl:for-each select="map:part[@label]"> @@ -1391,16 +1408,17 @@ <!-- process all map:parts --> if (hasMatchingViewRequest) { <xsl:for-each select="map:part[@label]"> + <!-- invoke view, and return here --> <xsl:call-template name="view-label"> <xsl:with-param name="label"><xsl:value-of select="@label"/></xsl:with-param> </xsl:call-template> </xsl:for-each> - } else { - <xsl:apply-templates select="map:part"> - <xsl:with-param name="ca"><xsl:value-of select="$ca"/></xsl:with-param> - </xsl:apply-templates> } } + </xsl:if> + <xsl:apply-templates select="map:part"> + <xsl:with-param name="ca"><xsl:value-of select="$ca"/></xsl:with-param> + </xsl:apply-templates> <!-- process attached labels to the map:aggregate element --> <xsl:if test="@label"> @@ -1693,6 +1711,8 @@ </xsl:if> </xsl:template> + + <!-- generate the code to match a label definition --> <xsl:template name="view-label"> <xsl:param name="label"/> @@ -1703,6 +1723,8 @@ } } </xsl:template> + + <!-- replace invalid characters with underscores --> <xsl:template name="generate-name">
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]